Programmers 60

[Programmers / Python 풀이] 모의고사

def solution(answers): answer = [] mans = [0, 0, 0] pattern = [[1,2,3,4,5], [2,1,2,3,2,4,2,5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]] for i in range(len(pattern)): for j in range(len(answers)): ans = answers[j] if ans == pattern[i][j%len(pattern[i])]: mans[i] += 1 for i in range(len(mans)): if max(mans) == mans[i]: answer.append(i+1) return answer 각 사람들의 패턴을 먼저 파악 후 패턴들과 정답들을 비교 ( 정답 비교 방법은 패턴을 반복해서 정답..

Programmers 2022.12.27

[Programmers / Python 풀이] 과일 장수

def solution(k, m, score): answer = 0 box_lst = [] score.sort() while len(score) >= m: apple_lst = [] for i in range(m): a = score.pop() apple_lst.append(a) answer += min(apple_lst) * len(apple_lst) return answer 풀고 나서 다른 사람의 풀이를 보고 현타가 왔다.. 그래서 공부 할 겸 코드 분석 1. 익명의 고수(1) def solution(k, m, score): return sum(sorted(score)[len(score)%m::m])*m 오름차순으로 정렬 된 리스트들을 문자열 슬라이스를 통해 개수만큼 짜르되 박스들의 최소값들의 리스트..

Programmers 2022.12.27

[Programmers / Python 풀이] 기사단원의 무기

def solution(number, limit, power): answer = 0 power_lst = [] for i in range(1, number + 1): cnt = 0 for j in range(1, int(i**0.5)+1): if i % j == 0: cnt += 1 if j**2 != i: cnt += 1 if cnt > limit: answer += power else: answer += cnt return answer 시간초과를 조심해야 하는 문제 모든 약수는 짝이 있다. 하지만 그 수의 약수중에 제곱이 그 수와 같은 것이라면 약수는 1개뿐 예를 들어 16의 약수들을 보면 1 - 2 - 4 - 8 - 16 1과 16이 짝, 2와 8이 짝 이 되고, 4는 제곱했을 때 16이 된다. 그..

Programmers 2022.12.26
LIST