Hey Tech
완전 탐색 알고리즘 #프로그래머스 #모의고사 | 파이썬 구현 본문
728x90
반응형
📚 문제
문제 원본: https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3
🤔 접근법
⚙️ 핵심 자료구조: 완전 탐색
문제해결 전략의 핵심은 수포자별 '찍기 패턴'을 고려해 문제별 찍은 번호를 유추해 내는 것입니다.
본 문제에서 1번 수포자는 5개씩 한 패턴으로 정답을 찍고, 2번 수포자는 8개씩, 3번 수포자는 10개씩 찍는다는 것을 알 수 있습니다.
따라서 수포자별 정답 찍는 패턴을 리스트를 활용해 정의할 수 있습니다.
정답을 확인할 문제 번호만큼을 '찍기 패턴'을 구성하는 숫자 개수로 나누어 줍시다.
이렇게 얻은 나머지로 수포자별 '찍기 패턴' 리스트를 인덱싱하면 해당 수포자가 찍은 정답을 알 수 있습니다.
문제에서 정답을 많이 맞춘 수포자 번호를 출력해야 하며 공동 1위가 있다면 모두 출력해야 하기 때문에,
최다 정답 개수만큼을 맞춘 모든 수포자 번호를 정답으로 출력해 줍니다.
💻 My solution
def solution(answers):
answer = []
ans_1 = [1, 2, 3, 4, 5]
ans_2 = [2, 1, 2, 3, 2, 4, 2, 5]
ans_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
score = [0, 0, 0]
for i in range(len(answers)):
if answers[i] == ans_1[i%5]:
score[0] +=1
if answers[i] == ans_2[i%8]:
score[1] +=1
if answers[i] == ans_3[i%10]:
score[2] +=1
for i in range(3):
if score[i] == max(score):
answer.append(i+1)
return answer
아낌없는 피드백 & 질문 환영합니다 :)
아래에 👇👇👇 댓글 남겨주세요!
그럼 오늘도 즐거운 하루 보내시길 바랍니다.
고맙습니다.
728x90
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
BFS알고리즘 #프로그래머스 #가장 먼 노드 | 파이썬 풀이 (2) | 2021.08.27 |
---|---|
DFS 알고리즘 #프로그래머스 #타겟넘버 | 파이썬 풀이 (0) | 2021.08.27 |
큐/스택 자료구조 #프로그래머스 #기능개발 | 파이썬 구현 (0) | 2021.08.27 |
다이나믹프로그래밍(DP) #프로그래머스 #정수 삼각형 | 파이썬 풀이 (0) | 2021.08.26 |
BFS 알고리즘 | 백준#17086 #실버 | "아기상어2" | 파이썬 풀이 (0) | 2021.08.24 |