개발자 성장 기록/코테
[이것이 코딩테스트다] 큰 수의 법칙 Python 풀이과정
으노방
2022. 9. 21. 21:55
테스트케이스
# test1
n, m, k = 5, 8, 3
n_list = [2, 4, 5, 4, 6]
# test2
n, m, k = 5, 7, 2
n_list = [3, 4, 3, 4, 3]
초기 코드
* test1은 잘 돌아가는데 tes2에서 자꾸 반복문이 9번 돌아갔다.
n, m, k = map(int,input().split())
n_list = list(map(int,input().split()))
n_list.sort(reverse=True)
answer = 0
sub_k = k
while m>0:
while k>0:
m-=1
answer+=n_list[0]
k-=1
if k == 0 :
m-=1
answer+=n_list[1]
k = sub_k
왜.... -2까지 도는가....분명히 첫 번재 while문에서 m>0이라고 걸어줬는데
맨 처음에 if==0: break 문도 아래 if문에 걸고 앉아 있었다.
해결 코드
n, m, k = map(int,input().split())
n_list = list(map(int,input().split()))
n_list.sort(reverse=True)
answer = 0
sub_k = k
while m>0:
while k>0:
m-=1
answer+=n_list[0]
k-=1
if m == 0:
break
if k == 0 :
m-=1
answer+=n_list[1]
k = sub_k
*이렇게 두 번째 while문에 if==0: break 추가를 해야 뭐가 됐든 m이 0이 되면 이중 while문 거치지 않고 빠져 나온다