728x90
반응형
https://level.goorm.io/exam/49088/%EC%9D%98%EC%A2%8B%EC%9D%80-%ED%98%95%EC%A0%9C/quiz/1
구름LEVEL
구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입
level.goorm.io
duo = list(map(int, input().split()))
for i in range(int(input())):
q, r = divmod(duo[i%2], 2)
duo[i%2] = q
duo[i%2 -1] += q + r
print(*duo)
"""
문제 지문에서 가지고 있는게 홀수라면 모두 준다고 하여 다주는지 알았는데
2로 나눈 나머지부분을 주는거였다. 문제를 잘못적은게 아닌가 싶다.
먼저 형제의 초기값을 duo라는 list변수에 넣어주었다.
서로 반씩 나누어지는 행위를 횟수만큼 for문을 돌린다.
divmod라는건 divmod(a,b)일때 a를 b로 나눈값을 몫, 나머지로 리턴해준다.
duo[i%2]의 값을 2로 나누었다.
이건 첫날에는 진우, 둘째날에는 선우, 셋째날에는 진우가 주기 때문이다.
i = 2 일때 3일날이고, (i=2)%2로 0번째 인덱스인 진우가 주게된다.
그리고 나누어준 사람은 몫값을 가지고,
받는 사람은 몫과 나머지를 받는다.
나머지는 0또는 1이기 때문에 홀수일때는 받는사람이 가져가게 된다.
그리고 duo[i%2 -1]은 인덱스가 2개이기때문에 할 수 있는 트릭이다.
0번째 인덱스일때는 -1이 되고, -1은 마지막사람, 즉, 1번째 인덱스 사람이 된다.
1번째 인덱스일때는 0이 되고, 0번째 인덱스가 되게 된다.
트릭을 이용하여 코드가 깔끔하게 써지게 된다.
마지막으로 *표시는 리스트의 값을 빈칸으로 나누어 []없이 표시한다.
ex) duo -> [1,2], *duo -> 1 2
"""728x90
반응형
'개발 > 문제풀이' 카테고리의 다른 글
| [구름레벨] 'T세포' 파이썬 풀이 (0) | 2023.06.21 |
|---|---|
| [구름레벨] '연속 점수' 파이썬 풀이 (0) | 2023.06.21 |
| [구름레벨] '피보나치 수' 파이썬 풀이 (0) | 2023.06.20 |
| [구름레벨] '폴더 폰 자판' 파이썬 풀이 (0) | 2023.06.13 |
| [구름레벨] '구름 숫자' 파이썬 풀이 (0) | 2023.06.09 |
댓글