[코딩테스트] 프로그래머스 - 예상 대진표 (Java)

proman·2022년 9월 17일
0

Coding-Test

목록 보기
11/21
post-thumbnail

🍶 설명

레벨: 2
언어: Java

🍩 느낀점

레벨 2중에서도 쉬운편에 속한 문제라고 생각한다..
알고리즘을 생각했을때 어떤한 방향을 잡고 가야되나 생각했던게 너무 간단하게 풀수있어서 매개변수 n이 왜주어진걸질 이해하지 못했다..

내가 작성한 코드는
1,2 / 3, 4 / 5, 6 / 7,8
이런식으로 되어있는데 여기서 +1을 하고 나누기 2를 시도하면 같은 그룹으로 묶이면서 나눠지고 최종적으로 원하는 2가지값이 일치할때 카운팅 수를 도출할수 있다는 코드이다.

가장 좋아요 많이 받은코드는
1. a = 4, b = 7 일때,
2. a - 1 = 3(11), b - 1 = 6(110) 이되면서(괄호는 비트입니다)
3. xor 비트연산자로 결과가 101 되고 length값이 3이되는데 bit 방식을 이용해서 풀었는데 풀이과정은 이해했지만, 좀더 고민해봐야겠다..

🥡 내가 작성한 코드

class Solution {
    public int solution(int n, int a, int b) {
        
        int answer = 0;
        while(a != b) {
            a = (a + 1) / 2;
            b = (b + 1) / 2;
            answer++;
        }

        return answer;
    }
}

🧅 가장 좋아요 많이받은 코드

class Solution
{
    public int solution(int n, int a, int b)
    {
        return Integer.toBinaryString((a-1)^(b-1)).length();
    }
}

0개의 댓글