프로그래머스(2)
-
[프로그래머스 문제풀이] 큰수 만들기
프로그래머스의 문제 종류 중 그리디 문제타입으로 되어 있는 연습문제이다. 문제는 위와 같다. 문제를 풀 수 있는 가장 간단한 방법은 순열 조합을 이용하여 가능한 조합의 수를 구하고 조합으로 만들어 낼 수 있는 가장 큰 수를 찾으면 된다. from itertools import combinations def solution(number, k): c = combinations(list(number), len(number)-k) num_list = map(''.join, c) answer = max(num_list) return answer 하지만 해당 코드를 이용하여 문제를 풀게 되면 몇 개의 문제 이외에는 시간 초과 오류가 발생한다. 문제의 정의에서 number의 자릿수는 최대 100만 자리..
2022.05.14 -
[프로그래머스 문제풀이] N으로 표현
DP문제는 아무래도 재귀 형식으로 표현하여 sub 문제들을 해결하여 큰 문제를 해결할 수있도록 하는 틀을 짜는 능력이 중요한것 같다. 이 문제의 경우에는 생각해보았지만, 해당 틀을 떠올리지 못해서 다른 소스코드를 참고하여 짠 코드이다. 발상 방법이야 여러개 있지만 내가 동작 시킨 코드는 아래와 같다. def calc(A, B): ret = set() for a in A: for b in B: ret.add(a + b) ret.add(a - b) ret.add(a * b) if b != 0: ret.add(a // b) return list(ret) def solution(N, number): answer = 0 # merge plus substract times divide result = dict() ..
2022.04.21