거북이처럼 코딩해도 괜찮으려나

005. 예상 대진표 본문

코딩/알고리즘

005. 예상 대진표

Hoooon22_코딩거북이_ 2021. 4. 14. 14:19
728x90

처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇 번째 라운드에서 만나는지 궁금해졌습니다.

  1. 사용 언어 : C#
  2. 체감 난이도 : 쉬움
  3. 활용 : 대진표? 알고리즘

<작성한 코드>

public int solution(int n, int a, int b)
        {
            int answer = 1;
            int x = a, y = b;

            while (true)
            {
                // 같은 라운드에서 만나는지
                if (Math.Abs(x-y) == 1 && Math.Max(x,y) % 2 ==0)
                {
                    break;
                }

                // 그렇지 않다면, a와 b를 다음 라운드로
                if (x % 2 == 0)
                    x /= 2;
                else
                    x = (x + 1) / 2;

                if (y % 2 == 0)
                    y /= 2;
                else
                    y = (y + 1) / 2;

                answer++;
            }

            return answer;
        }

반으로 쪼개고 쪼개면서 서로 만나면 탈출하고 Round를 return한다.

'코딩 > 알고리즘' 카테고리의 다른 글

Librosa를 활용한 MFCC 구현(1)  (0) 2022.04.06
006. 입국심사  (0) 2021.04.14
004. 조이스틱  (0) 2021.04.10
003. 스킬 트리  (0) 2021.04.09
002. 시저 암호  (0) 2021.04.08