월간 코드 챌린지 시즌1
-
68644. 두 개 뽑아서 더하기(Python, Programmers Level 1)Programmers 2022. 9. 7. 00:24
문제 설명 입력받은 리스트 내 두 숫자를 더해 만들 수 있는 모든 숫자를 오름차순으로 반환하세요! 입력 numbers: 정수가 들어있는 1차원 리스트 풀이 동일한 숫자를 두 번 더할 수 없으므로 다음 인덱스부터 탐색하도록 합니다. 동일한 숫자는 한 번만 출력하므로 set 자료형을 사용합니다. 오름차순으로 반환해야 하므로 가장 마지막에 정렬하여 반환합니다. 코드 더보기 def solution(numbers): answer = set() n = len(numbers) for i in range(n): for j in range(i + 1, n): answer.add(numbers[i] + numbers[j]) return sorted(answer) if __name__ == '__main__': result..
-
77884. 3진법 뒤집기(Python, Programmers Level 1)Programmers 2022. 9. 6. 01:42
문제 설명 입력받은 10진수를 3진수로 변환 후 뒤집고 다시 10진수로 바꾸어 반환합니다. 입력 n: 10진수 풀이 10진수를 3진수로 변환하는 부분을 만드는 것이 가장 중요합니다. 몫이 없을 때 까지 10진수를 3진수로 계속 나눠가며 발생한 나머지를 역순으로 이어붙이면 3진수가 됩니다. 그렇다면 역순이 아닌 원래의 순서로 이어붙이면? 코드 더보기 def reversed_base_convert(num, base): share, remainder = divmod(num, base) if share == 0: return str(remainder) else: return str(remainder) + reversed_base_convert(share, base) def solution(n): reversed..
-
70128. 내적(Python, Programmers Level 1)Programmers 2022. 9. 4. 23:19
문제 설명 1차원 배열 a, b가 주어질 때, 동일한 위치의 요소를 서로 곱하고, 그 결과를 모두 더해 반환합니다. 코드 1. a, b에서 각 요소를 차례대로 가져옵니다. for i, j in zip(a, b): 그 수를 서로 곱해 결과에 더합니다. answer += i * j 더보기 def solution(a, b): answer = 0 for i, j in zip(a, b): answer += i * j return answer if __name__ == '__main__': result = solution([1, 2, 3, 4], [-3, -1, 0, 2]) print(3 == result, result) result = solution([-1, 0, 1], [1, 0, -1]) print(-2 =..