본문 바로가기
ALGORITHM/PROGRAMMERS

[PG/Python] 모의고사

by 안녕나는현서 2021. 8. 21.
728x90

📌 문제

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

 

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

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

programmers.co.kr

 

📌 문제 접근 방법

  1. 완전 탐색 적용해보기!
  2. answers리스트의 길이가 계속 바뀌어서 길이를 설정해주는 함수를 만들어서 길이를 늘려주었다.
  3. 다른 사람의 코드를 보니 answers의 해당 인덱스를 패턴 길이로 나누어서 바로 인덱싱을 해주었더라! 완전 깔끔✨
    어떻게 하면 그렇게 생각해서 코드를 구현할 수 있을까..!!!

 

📌 코드

def set_len(pattern, goal):
    while len(pattern) < goal:
            pattern *= 2
    
    return pattern


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]

    goal = len(answers)
    person1 = set_len(pattern1, goal)
    person2 = set_len(pattern2, goal)
    person3 = set_len(pattern3, goal)

    cnt_lst = []
    for person in (person1, person2, person3):
        cnt = 0
        for i in range(goal):
            if answers[i] == person[i]:
                cnt += 1
        cnt_lst.append(cnt)

    answer = []
    for i in range(3):
        if cnt_lst[i] == max(cnt_lst):
            answer.append(i+1)

    return answer

answers = [1, 2, 3, 4, 5]
print(solution(answers))

 

728x90

'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글

[PG/Python] 전력망을 둘로 나누기  (0) 2021.11.14
[PG/Python] 타겟 넘버  (0) 2021.11.04
[PG/Python] 문자열 압축  (0) 2021.11.03
[PG/Python] 가장 큰 수  (0) 2021.08.18
[PG/Python] K번째수  (0) 2021.08.16

댓글