프로그래머스(Python) 풀이/Level.1

프로그래머스(Python) Level.1 모의고사 풀이

개발윗미 2022. 3. 5. 15:41

Python으로 구현한 42840번 모의고사 문제 풀이입니다.

 

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

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr


def solution(answers):
    answer = [0 for i in range(3)] 
    
    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]
    
    for i in range(len(answers)) :
        if (first[i % len(first)] == answers[i]) :
            answer[0] += 1
        if (second[i % len(second)] == answers[i]) :
            answer[1] += 1
        if (third[i % len(third)] == answers[i]) :
            answer[2] += 1
            
    result = []
    for i in range(3) :
        if answer[i] == max(answer) :
            result.append(i + 1)
    
    return sorted(result)

 

1. 1번~3번 수포자가 찍는 방식을 각 first, second, third 리스트에 할당하여 초기화한다.

 

2. 전달받은 answers의 길이만큼 반복하여 각 first, second, third의 해당 인덱스 값이 answers[i] 요소와 같을 경우 answer에 해당되는 인덱스 값을 1 증가시킨다.

 

3. answer 값을 하나씩 확인하여 최대값과 같을 경우 result 리스트에 i + 1을 추가한다.

 

4. 최종적으로 result를 오름차순으로 정렬하여 반환한다.