#1차 시도
def solution(answers):
answer = []
cnt = 0
user_1 = [1,2,3,4,5]
user_2 = [2,1,2,3,2,4,2,5]
user_3 = [3,3,1,1,2,2,4,4,5,5]
users = [user_1,user_2,user_3]
for idx, user in enumerate(users):
while len(answers) > len(user):
user + user
for i in range(len(answers)):
if user[i]==answers[i]:
user[i] = 0
if not answer or cnt <= user.count(0):
cnt = user.count(0)
answer.append(idx+1)
return answer
테스트코드는 통과했지만 코드채점에서 막혔다. for문과 while문이 많아서 과부하가 생긴느낌이다.
def solution(answers):
answer = []
scores = [0]*3
user1 = [1, 2, 3, 4, 5]
user2 = [2, 1, 2, 3, 2, 4, 2, 5]
user3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
for i in range(len(answers)):
if answers[i] == user1[i % len(user1)]:
scores[0] += 1
if answers[i] == user2[i % len(user2)]:
scores[1] += 1
if answers[i] == user3[i % len(user3)]:
scores[2] += 1
max_score = max(scores)
for i in range(3):
if scores[i] == max_score:
answer.append(i + 1)
return answer
문제를 풀면서 enumerate 함수에 대해서 처음 알았다.
list로 for문을 돌릴때 index가 필요할 때 요긴하게 써먹을 것 같다.
'코딩문제' 카테고리의 다른 글
괄호 변환(2020 KAKAO BLIND RECRUITMENT) 파이썬 (0) | 2020.08.06 |
---|---|
더 맵게(프로그래머스 코딩 테스트 연습) 파이썬 (0) | 2020.08.05 |
실패율(2019 kakao blind recruitment) 파이썬 (0) | 2020.08.03 |
완주하지 못한 선수(프로그래머스 코딩테스트 연습) 파이썬 (0) | 2020.07.30 |
파일명 정렬(카카오 신입 공채 3차 코딩 테스트) 파이썬 (0) | 2020.07.30 |