코딩테스트/Programmers


접근 방법문제의 패턴을 단순화시켜서 접근을 해보면, n개의 숫자들의 연산에서 (n-1)개까지의 숫자들 연산 후 n번째 숫자를 더할 것이냐, 뺄 것이냐의 2가지 방법으로 분기할 수 있다. 즉, 입력 값 number가 [1, 2, 3, 4] 일 때, [1, 2, 3]의 연산 이후 마지막 숫자인 4를 더한 값과 뺀 값의 2가지 결과를 얻을 수 있다는 것이다. 이를 구현하기 위해 재귀함수를 활용할 수 있다. 전체 코드의 큰 흐름은 아래와 같다. 1. 재귀 함수의 입력값으로 array와 현재 index, 현재 sum을 받는다.2. 함수 내에서 array와 다음 index의 숫자에 대하여 sum에 더하거나 빼는 것을 반복적으로 호출한다.3. 만일 index의 값이 전체 array의 길이와 같으면, 즉 맨 마지막..


from collections import Counterdef solution(X, Y): count_x = Counter(X) count_y = Counter(Y) common_digit = set(X) & set(Y) result = [] for digit in common_digit: min_count = min(count_x[digit], count_y[digit]) result.extend([digit] * min_count) result.sort(reverse=True) if len(result) == 0: return '-1' if result[0] == '0': return '..


def solution(n): answer = 0 num_list = [] for i in range(len(str(n))): num_list.append(n%10) n //= 10 sorted_num_list = sorted(num_list) for i in range(len(sorted_num_list)): answer += sorted_num_list[i] * (10**i) return answer