반응형
1. 문제 소개
- 수학, 브루트 포스 알고리즘 유형 문제에 해당한다.
https://www.acmicpc.net/problem/1057
2. 코드
def set_test_case():
input_str= input()
parse_str = input_str.split(" ")
N, A, B = int(parse_str[0]),int(parse_str[1]),int(parse_str[2])
return N,A,B
def divide(num):
if num == 1:
return num
elif num % 2 != 0:
return num//2 + 1
else:
return num//2
def solution():
N,A,B = set_test_case()
round_count = 0
while(True):
round_count +=1
A = divide(A)
B = divide(B)
if A == B :
break
print(round_count)
def main():
solution()
if __name__ == '__main__':
main()
3. 코멘트
- 사실.. 실행 예제를 손으로 그려보며, 직감적으로 규칙을 찾았기 때문에 수학적 접근으로 풀진 못했다.
- 문제 설명에 따라서, 토너먼트 라운드가 올라갈 때 새로운 팀 번호가 부여되는데, 팀 번호가 부여되는 규칙이 있고, A와 B 팀 번호가 같아 두 팀이 붙을 때 라운드를 출력하면 된다고 생각했다.
- 처음에는 히든 케이스 때문에 통과하지 못했었는데, 함께 스터디한 유진님이 나와 비슷한 접근 방식으로 해결했고, 도움을 받아 통과했다.
- 새해 첫 스터디였다. ㅎㅎ
반응형
'Algorithm' 카테고리의 다른 글
Baekjoon 백준 알고리즘 - 폴리오미노 ( 1343 ) (0) | 2022.02.27 |
---|---|
Baekjoon 백준 알고리즘 - N과 M ( 15649 ) (0) | 2022.01.16 |
Baekjoon 백준 알고리즘 - 스타트와 링크 ( 14889 ) (0) | 2021.12.05 |
leetcode 알고리즘 - Climbing Stairs (0) | 2021.12.01 |
leetcode 알고리즘 - Search Insert Position (0) | 2021.11.29 |