목록CodingTest/programmers (96)
기억은 짧고 기록은 길다

Link 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr Solution replace() 하나만 떠올렸으면 금방 풀 문제를... 왜 문제를 풀땐 생각이 안날까 항상 답답하다... 해당 문제를 통해 replace()를 익히고 가길 바란다! def solution(s): answer = [] nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] t = '' for i in range(len(s)):..

Link 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr Solution 해당 문제를 통해 제곱수는 홀수개의 약수를 가지고 있고 제곱수가 아닌 수는 짝수개의 약수를 가지고 있다는 것을 알게 되었다... 왜 이렇게 못풀었을까란 자책보단 참 놀라웠다... def solution(left, right): answer = 0 count = [1] * (right - left + 1) for i in range(left, right + 1): for j in rang..

Link 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr Solution 해당 문제는 Dictionary를 사용하면 좀 더 쉽게 접근할 수 있었다. Dictionary를 lambda()를 사용해 정렬할 때에도 접근하는 방법이 다양하다는걸 문제를 풀면서 알게 되었다. 해당 문제를 통해 lambda()의 정확한 사용법을 몰랐던 사람들은 더 찾아보며 lambda()에 대해 확실하게 짚고 넘어가는 계기가 되길 바란다. def solution(N, stages): answer = {} t = len(stages) fo..

Link 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr Solution def solution(num): answer = 0 while num != 1: if answer == 500: return -1 if num % 2 == 0: num /= 2 answer += 1 else: num = num * 3 + 1 answer += 1 return answer

Link 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr Solution 해당 문제는 set간의 - 연산을 알고 있다면 쉽게 해결할 수 있다. def solution(n, lost, reserve): set_lost = set(lost) - set(reserve) set_reserve = set(reserve) - set(lost) for i in list(set_lost): if i - 1 in set_reserve: set_lost.remove(i) set_reserve.remove(i - 1) elif i..

Link 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr Solution 해당 문제는 흔히 사용하는 방법으로 최대공약수와 최소공배수를 구할 수도 있지만 Other Solution의 유클리드 호제법도 확인해보면 좋을것 같다. def solution(n, m): answer = [] for i in range(min(n, m), 0, -1): if n % i == 0 and m % i == 0: answer.append(i) answer.append(n * m / i) break ..