[백준/파이썬] 17944번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 17944번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
퐁당퐁당은 술게임 중 팀워크가 가장 중요한 MT 단골 게임이다. 매 차례마다 지정된 수의 팔을 동시에 들어야 하는데, 이를 실패하면 팔을 들어야했던 사람과 실수로 팔을 든 사람 모두 연좌제로 마셔야 하기 때문이다. 퐁당퐁당 게임의 규칙은 아래와 같다.
-
1번 사람부터 N번 사람까지 순서대로 총 N명의 사람들이 원 모양을 이루어 반시계방향으로 둘러앉는다. 이 때 모든 사람들은 원의 중앙을 바라보고 앉는다.
-
게임은 1번 사람의 왼팔부터 시작하여 원의 바깥에서 보았을 때 왼쪽에서 오른쪽으로 진행한다.
-
첫 번째 차례 이후 매 차례마다 가장 오른쪽 사람이 들었던 팔의 다음 팔부터 진행하고, 순서대로 지정된 수만큼의 팔을 들어올린다.
-
게임을 시작할 때 들어야 하는 팔의 갯수는 1개이다. 시작하여 차례가 지날 때마다 들어야 하는팔의 개수는 1씩 증가한다.
-
들어야 하는 팔의 갯수가 2 × N 개가 되었다면 다음 차례부터 1씩 감소시킨다.
-
들어야 하는 팔의 갯수가 1개가 되었다면 다음 차례부터 다시 1씩 증가시킨다. …
입력 요약
첫 번째 줄에 게임에 참여하는 사람 수 N과 계산해야하는 차례 T가 정수로 주어진다. (2 ≤ N ≤ 1000, 1 ≤ T ≤ 107)
출력 요약
해당 차례에 들어야 하는 정확한 팔의 개수를 계산하여 출력한다.
코드
a,b=map(int,input().split())
c=0
for i in range(b):
if c<=1:d=1
elif c==2*a:d=-1
c+=d
print(c)
설명
핵심은 구현 관점에서 퐁당퐁당은 술게임 중 팀워크가 가장 중요한 MT 단골 게임이다. 매 차례마다 지정된 수의 팔을 동시에 들어야 하는데, 이를 실패하면 팔을 들어야했던 사람과 실수로 팔을 든 사람 모두 연좌제로 마셔야 하기 때문이다. …를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기