https://school.programmers.co.kr/learn/courses/30/lessons/42840
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
아이디어
person1 = [1, 2, 3, 4, 5] * (length // 5 + 1)
person2 = [2, 1, 2, 3, 2, 4, 2, 5] * (length // 8 + 1)
person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] * (length // 10 + 1)
처음에는 이렇게 미리 인덱스를 계산해주었는데, 그럴 필요가 없었다.
person1 = [1, 2, 3, 4, 5]
person2 = [2, 1, 2, 3, 2, 4, 2, 5]
person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
for i, a in enumerate(answers):
if person1[i%5] == a: answer[0] += 1
if person2[i%8] == a: answer[1] += 1
if person3[i%10] == a: answer[2] += 1
이렇게 인덱스를 조회하면 되기 때문이다!! (나머지에 의해서 0~n-1까지 순회)
전체 코드
def solution(answers):
answer = [0,0,0]
person1 = [1, 2, 3, 4, 5]
person2 = [2, 1, 2, 3, 2, 4, 2, 5]
person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
for i, a in enumerate(answers):
if person1[i%5] == a: answer[0] += 1
if person2[i%8] == a: answer[1] += 1
if person3[i%10] == a: answer[2] += 1
return [i+1 for i, a in enumerate(answer) if a == max(answer)]
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 (level2, python) (0) | 2024.01.18 |
---|---|
[프로그래머스] 네트워크 (level3, python) (0) | 2024.01.17 |
[프로그래머스] 최소직사각형 (level1, python) (0) | 2024.01.16 |
[프로그래머스] 타겟 넘버 (level2, python) (0) | 2024.01.16 |
[프로그래머스] H-Index (level2, python) (0) | 2024.01.16 |