본문 바로가기
Project/Algorithm

[백준 알고리즘] 1057번(토너먼트)

by 도낙원 2017. 8. 8.
반응형

[백준 알고리즘]


1057 토너먼트 문제는 일단 이해가 쉽다.


우리 모두 알고 있는 토너먼트 형식이고


입력값으로 주어진 번호로 몇 번째에 서로 대결을 하는지 구하는 것입니다.



입력 값으로는 총 인원 / 김지민 번호 / 임한수 번호 가 주어집니다.


나머지는 누가 이기던 상관이 없으며 김씨와 임씨는 무조건 이긴다는 가정이 있습니다.





8번인 김씨와 9번인 임씨에 대한 규칙이 생깁니다.(12까지만 했습니다.)


김씨(빨) 8 > 4 > 2 > 1 > 대결

임씨(파) 9 > 5 > 3 > 2 > 대결


그렇다면 짝수 홀수 모두 N = N/2 + N%2 라는 규칙이 생깁니다.

(여기서 %는 나머지를 구하는 것입니다.)


이 규칙을 구하셨다면 금방 해결이 될겁니다.


여기까지 이해가 된다면 다 끝난겁니다.



<코 드> 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
public class Beak1057 {
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int kim = sc.nextInt();
        int im = sc.nextInt();
        int count = 0;
        while(kim != im) {
            kim = kim/+ kim%2;
            im = im/+ im%2;
            count++;
        }
        System.out.println(count);
    }
 
}
 
cs


이렇게 작성하면 깔끔하게 성공입니다.

반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기

댓글