[JAVA/프로그래머스] 2017 팁스다운: 예상 대진표

👀 문제

https://programmers.co.kr/learn/courses/30/lessons/12985

👊 도전

1. 설계

  1. x가 짝수라면 다음 라운드에서 x는 x/2 번째가 된다.
  2. 홀수라면 x/2+1가 된다.
  3. a, b가 같아질 때까지 진행한다.

2. 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 *
 * @author HEESOO
 *
 */
class Solution
{
    public int solution(int n, int a, int b)
    {
        int answer=0;
        while(a!=b){
            a=solve(a);
            b=solve(b);
            answer++;
        }

        return answer;
    }
    
    public int solve(int x){
        if(x%2==0) return x/2;
        else return x/2+1;
    }
}

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. a, b가 다음 라운드에서 몇 번째가 되는지 예상한다.
    • 짝수라면 다음 라운드에서는 x/2, 홀수라면 x/2+1 번째가 된다.
    • 둘이 같아질 때까지 반복한다.

👏 해결 완료!