[프로그래머스] Level2 예상 대진표 (Java)

MINSANG YU·2022년 9월 17일
0

프로그래머스

목록 보기
9/15
post-thumbnail

문제링크

핵심

각 라운드가 지날때 마다 자신의 번호를 2로 나눈 뒤, 소수점을 올림처리하면 다음 차례의 번호를 알 수 있는 규칙을 찾는 것이 핵심이였다.

class Solution
{
    public int solution(int n, int a, int b)
    {
        int answer = 0;
        
        while(a!=b) {
            a = (int)Math.ceil(((double)a/2));
            b = (int)Math.ceil(((double)b/2));
            answer++;
        }
        return answer;
    }
}

규칙만 찾아서 그대로 적용하면 되기 때문에 간단한 문제였다. 위 규칙 대로 적용하면 n=8일 경우 1,2,3,4,5,6,7,8번이 각각 다음 차례에 1,1,2,2,3,3,4,4번이 되기 때문에 다음 차례의 번호가 같아지면 (a==b라면) 해당 대진에 만난 다는 의미가 되므로 분기 조건을 a!=b로 정해주었다.

profile
쉿! 공부중

0개의 댓글