코딩 코딩 코오딩 2021. 4. 8. 00:52

https://programmers.co.kr/learn/courses/30/lessons/42840

 

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

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

programmers.co.kr

이 문제는 너무 어려웠다... 허헣

그래서 다른 분들 풀이를 참고했다.

def solution(answers):
   first = [1,2,3,4,5]
   second = [2,1,2,3,2,4,2,5]
   third = [3,3,1,1,2,2,4,4,5,5]
   fc = sc = tc = 0
   for i in range(len(answers)):
       if first[i%(len(first))] == answers[i]: fc+=1
       if second[i%(len(second))] == answers[i]: sc+=1
       if third[i%(len(third))] == answers[i]: tc+=1
   MAX = max(fc, sc, tc)
   answer = []
   if MAX == fc: answer.append(1)
   if MAX == sc: answer.append(2)
   if MAX == tc: answer.append(3)
   return answer

calmlife.tistory.com/8

 

프로그래머스 Lv1. 모의고사(python)

프로그래머스 Lv1. 모의고사(파이썬) https://programmers.co.kr/learn/courses/30/lessons/42840 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합.

calmlife.tistory.com

이건 enumerate함수를 사용 했다 함수는 기본적으로 인덱스와 원소로 이루어진 터플(tuple)을 만들어줍니다. 따라서 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자 풀기(unpacking)를 해줘야 합니다.

enumerate는 인덱스와 인자를 준다.

def solution(answers):
    pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1
        if answer == pattern2[idx%len(pattern2)]:
            score[1] += 1
        if answer == pattern3[idx%len(pattern3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return result

www.daleseo.com/python-enumerate/

 

[파이썬] enumerate 내장 함수로 for 루프 돌리기

Engineering Blog by Dale Seo

www.daleseo.com

 

반응형