티스토리 뷰

728x90
 

코딩테스트 연습 - 예상 대진표

△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N

programmers.co.kr

 

풀이

1. 항상 이기닌깐 a와 b로만 순위를 구해주면댐

2. 그림처럼 4와 7이 맞붙기 위한 순위 이동 공식을 만들어줘야함 

3. 첫숫자 a 두번째 숫자 b 라고 가정했을때

a = a/2 + a%2  ex) 4는 4 -> 2 -> 1 순위를 가짐

b = b/2 + b%2 ex) 7은 7 -> 4 -> 2 -> 1

 

 

package programmers.level2;

import org.junit.Test;

public class P12985 {

    @Test
    public void 정답() {
        System.out.println(solution(8, 4, 7));
    }

    public int solution(int n, int a, int b) {
        int answer = 0;
        while (true) {
            a = a / 2 + a % 2;
            b = b / 2 + b % 2;
            answer++;
            if (a == b) break;
        }
        return answer;
    }
}

 

댓글
최근에 달린 댓글
최근에 올라온 글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30