프로그래머스 - 모의고사
모의고사 문제 바로가기 나의 풀이 bruteforce 문제는 문제 이해만 잘 하면 솔직히 구현의 영역이다. PS에서 list을 다룰 때에 enumerate가 굉장히 유용하고 자주 쓰이기에 잘 활용하는 것이 중요하다. 아래 풀이에서는 그냥 1, 2, 3번 학생의 찍는 번호를 a,b,c array로 만들고 하나씩 확인하는 방법을 택했다. score=[0,0,0]으로 선언하고 각 자리에 1,2,3번 학생의 점수를 더해주면 나중에 오름차순하는 소요가 줄어서 풀이가 간편해진다. def solution(answers): a = [1,2,3,4,5]*2000 b = [2,1,2,3,2,4,2,5]*1250 c = [3,3,1,1,2,2,4,4,5,5]*1000 score = [0,0,0] for i, ans in enumerate(answers): if a[i] == ans: score[0] += 1 if b[i] == ans: score[1] += 1 if c[i] == ans: score[2] += 1 answer = [] for i, s in enumerate(score): if s == max(score): answer.append(i+1) return answer 다른 사람의 풀이 구경하기 순환주기 고려해주기 pattern1[idx%len(pattern1)] 처럼 각각의 순환 주기로 index을 나누어주면 큰 숫자에 대해서도 정답을 구할 수 있다. a = [1,2,3,4,5]*2000처럼 안해도 되어서 메모리 절약 가능! ...