혜온의 이것저것

[코딩테스트 고득점 Kit ] 완전탐색 모의고사 - Python 본문

Algorithm/Programmers

[코딩테스트 고득점 Kit ] 완전탐색 모의고사 - Python

혜온 :) 2021. 10. 4. 18:00

[문제 이해 및 풀이]

먼저 주어진 찍는 방식에서 반복되는 규칙을 찾아 lst에 저장해둔다. 이 리스트들은 어떤 답이 주어지더라도 같은 결과이고, anwers의 경우만 길이와 내용이 달라지므로 answers를 기준으로 for문을 돌렸다.

lst의 길이가 각자 다르고, answers의 길이와도 다르기 때문에 맞는지 비교하기 위해서 i%len(lst)를 사용하여 idx가 반복되도록 설정해주었다.

가장 많이 맞춘 사람의 번호를 return해줘야 하기 때문에 max를 사용해서 맞춘 개수의 최대값을 뽑아주고, 그 최대값과 같은 값을 가지고 있는 번호를 answer 리스트에 append해줬다. 이때 enumerate를 사용하여주었다.


[나의 코드]

def solution(answers):
    answer=[]
    lst1=[1,2,3,4,5]
    lst2=[2,1,2,3,2,4,2,5]
    lst3=[3,3,1,1,2,2,4,4,5,5]
    cnt1=0;cnt2=0;cnt3=0
    for i in range(len(answers)):
        if answers[i]==lst1[i%len(lst1)]:
            cnt1+=1
        if answers[i]==lst2[i%len(lst2)]:
            cnt2+=1
        if answers[i]==lst3[i%len(lst3)]:
            cnt3+=1
    cnt_lst=[cnt1,cnt2,cnt3]
    for idx, cnt in enumerate(cnt_lst):
        if cnt==max(cnt_lst):
            answer.append(idx+1)
    return answer

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

 

Comments