본문 바로가기
알고리즘

[프로그래머스- 모의고사][파이썬] -4일차

by Jyujae 2022. 5. 29.

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

--풀이

 


 

 

1. for문에서 len(answers)로  range 돌린 이유

직접 i in answers로 돌리게 되면, answers와 player들의 길이가 다를 경우, indexing이 어려워진다

0번부터 시작하는 i를 통해 answers에는 answers[i]번 인덱스로 첫 수부터 접근,

각각의 플레이어들의 첫 인덱스부터 접근할 수 있기 때문

 

2. len(player_x)

생각보다 나머지를 구하는 과정에서 멘붕이 올 뻔 했다.

0%5 = 0이라는 걸 생각하지 못했던 바보 같은 상황

ex) answers=[1,3,2,4,5,1,3,2,4,5]

player_1=[1,2,3,4,5]

0%5 =0 ->player_1의 0번 인덱스를 호출 

1%5=1

2%5=2

3%5=3

4%5=4

5%5=0 ->player_1의 0번 인덱스를 호출

5%6=1

...

순환하면서 리스트를 돌릴 수 있다

생각을 간결하게 해보자

for문이니 while문이니 클 떄 작을 때 나 고민하다보니 시간이 너무 오래 걸렸다

 

3. 마지막 for문 中 append(i+1)

3명의 수포자기 때문에 range는 3으로 설정,

만약 result[0]번이 max이면 answer에 1을 더해야함

i=0이고, 우리는 인덱스번호가 0번이지만 1번 수포자기 때문에

한명씩 max 값을 앞에서부터 더함으로, 가장 높은 점수를 받은 사람이 중복되면 오름차순 해달라는 조건까지

모두 해결가능했다