본문 바로가기
프로그래밍 ( Programming )/백준 알고리즘 (BaekJoon Algorithm)

1057번 - 토너먼트

by Jayce_choi 2023. 3. 1.
반응형

문제 링크: https://www.acmicpc.net/problem/1057

 

1057번: 토너먼트

김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를

www.acmicpc.net

 

알고리즘 분류

- 수학
- 브루트 포스 알고리즘

 

나름의 풀이 과정에 대한 사고

1, 2, 3, 4, 5, 6, 7, 8 -> 1, 2, 3, 4 -> 1, 2 -> 1 

와 같이 진행이 될 때 1, 2를 그룹으로 묶을 수 있는 방법이 중요함. 즉, 3, 4 또한 한 그룹으로 묶을 수 있어야 함

리스트를 사용할수도 있지만 나눗셈과 뺄셈을 이용하여 접근하는 게 더 효율적이다.

value = value - value//2 의 공식은 value가 1 또는 2의 값이 들어갔을 때 무조건 1이 나오게 된다. 마찬가지로 3 또는 4가 들어갔을 때 무조건 2가 나오게 된다. 이와 같은 방법으로 결국 임한수와 김지민이 같은 숫자를 가지게 됐을 때의 라운드 숫자만 뽑아내면 성공하게 된다.

 

풀이 코드

if __name__ == '__main__':
    n, kim, im = map(int, input().split())
    count = 0
    while kim != im:
        kim = kim - kim//2
        im = im - im//2
        count = count + 1
        
    print(count)

 

반응형

댓글