이 문제는 문제 설명은 길지만 짧게 설명하자면 A선수의 번호와 B선수의 번호가 주어졌을 때, 몇 번 만의 두 선수가 겨루게 될지 묻는 문제이다.
즉 총 8명의 선수가 있을 때, 현재 A의 번호는 4이고 B의 번호는 7이므로 A의 대진번호는대진 번호는 2, B의 대진 번호는 4가 된다. 이 문제의 조건인, A와 B는 항상 이기기 때문에 그다음 A의 대진 번호는 1, A의 대진 번호는 2가 된다. 다음 경기도 이길 것이고 그다음 A의대 진번호는 1, B의 대진 번호도 1로 같게 되므로 정답 3이 나오게 된다.
문제만 이해한다면 구현자체도 어렵지 않기 때문에 금방 풀 수 있는 문제였던 것 같다.
결국 자신의 번호(대진번호)가 1,2이면 그다음 대진 번호는 1, 3,4이면 대진 번호 2, 5,6이면 3 이 될 것이고 A와 B가 대진 번호가 같아질 때 경기를 치른 횟수가 정답이게 된다.
나는 어떻게 하면 편하게 풀 수 있을까 하고 고민하다가//(나누기)연산을 활용하였다. a와 b의 숫자에 1을 더하고 2를 나눈 몫이 다음 대진 번호가 되기 때문이다.
이를 코드로 구현한다면
이렇게 된다.
이런식으로 규칙을 찾았던 문제가 SWEA의 자기 방으로 돌아가기 문제와 유사했기 때문에 아이디어를 얻을 수 있었다.
어려운 문제는 아니었지만, 내가 공부했던 게 떠올랐다는 점에서 이문제를 기분 좋게 풀었던 것 같다.
'알고리즘' 카테고리의 다른 글
[PROGRAMMERS] 2021 Dev-Matching: 다단계 칫솔 판매 Python (0) | 2022.05.17 |
---|---|
[PROGRAMMERS] 2022 KAKAO BLIND RECRUITMENT : 주차 요금 계산 Python (0) | 2022.05.16 |
[SWEA] D4 : 길찾기 Python (0) | 2022.05.14 |
[SWEA] D4 : 장훈이의 높은 선반 (0) | 2022.05.12 |
[SWEA] D4 : 하나로(3459) Python (0) | 2022.05.11 |