Junior-Developer
Home
  • Category (316)
    • 문제풀이 (270)
      • 백준oj (201)
      • 프로그래머스 (53)
      • 명품 자바 프로그래밍(개정4판) (11)
      • 구름 (5)
    • 알고리즘 (6)
    • Node.js (2)
    • 체크리스트 (37)
블로그 내 검색
Home

Junior-Developer

1일 1커밋! 1일 1 백준!

  • 문제풀이/프로그래머스

    [프로그래머스] 예상 대진표

    2021. 7. 30.

    by. Hyeon-Uk

    반응형

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

     

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

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

    programmers.co.kr


    -풀이-

    대진표의 구조이다. 1번과 2번은 한 라운드가 끝나면 승자는 1번이되고, 3번과 4번은 2번, 5번과 6번은 3번, 7번과 8번은 4번이 된다. 다음라운드에서 1번과 2번중 승자는 1번이되고, 3번과 4번은 2번이된다.

     

    여기서 규칙이있다.

    1) 각 라운드가 끝나고 승자는 (자신의 번호 + 1) / 2가 된다.

    2) 다음 라운드에서 붙게될 대상은 홀수 vs 짝수가 되고, 짝수-홀수 = 1이 된다.

     

    따라서 라운드를 지나가면서 큰수-작은수=1 이면서 큰수%2==0 이고, 작은수 %2==1 이 되는 지점을 찾아서 break를 해준 뒤, 값을 return 해주면 된다.

     

    -시간복잡도-

    N의 최댓값은 2^20 이므로 , 최대 높이는 Log(N) = 20이 된다. 따라서 최악의 경우 모든 높이를 거슬러 올라가야하므로, 시간복잡도는 O(1)이 된다.

     

    -코드-

    #include <iostream>
    
    using namespace std;
    
    int solution(int n, int a, int b)
    {
        int answer = 0;
        if(a>b){
            int temp=a;
            a=b;
            b=temp;
        }
        
        while(true){
            answer++;
            
            if(b-a==1&&a%2==1&&b%2==0){
                break;
            }
            
            else{
                a=(a+1)/2;
                b=(b+1)/2;
            }
        }
        return answer;
    }
    반응형
    저작자표시 (새창열림)

    '문제풀이 > 프로그래머스' 카테고리의 다른 글

    [프로그래머스] 동물 수 구하기  (0) 2021.09.05
    [프로그래머스] 징검다리  (0) 2021.09.03
    [프로그래머스] 구명보트  (0) 2021.07.20
    [프로그래머스] 카카오 프렌즈 컬러링북  (0) 2021.07.11
    [프로그래머스] 루시와 엘라 찾기  (0) 2021.07.10

    댓글

    관련글

    • [프로그래머스] 동물 수 구하기 2021.09.05
    • [프로그래머스] 징검다리 2021.09.03
    • [프로그래머스] 구명보트 2021.07.20
    • [프로그래머스] 카카오 프렌즈 컬러링북 2021.07.11
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
Hyeon-Uk

티스토리툴바