본문 바로가기
1-4. 코딩테스트 문제집(진행중)/PCCP(Lv2)

[PCCP] Lv2: 예상 대진표(12985) 해설

by cogito21_cpp 2024. 12. 24.
반응형

문제

- 문제 링크: 예상 대진표

 

해설

- 자료구조: 

- 시간복잡도: 

 

(풀이과정)

1) 

2) 

3) 

4) 

 

코드

(C언어)

solution 1)

더보기

solution 1

#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C++)

solution 1)

더보기
#include<>

solution 2)

- 참가한 인원 수 N

- 같은 번호가 될 때까지 계속해서 2로 나누는 연산: O(logN)

더보기
#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;

    do {
        a = (a + 1) / 2;
        b = (b + 1) / 2;
        ++answer;
    } while (a != b);

    return answer;
}

solution 3)

더보기
#include<>

 

(C#)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Java)

solution 1)

- N: 참가한 인우너 수

- 같은 번호가 될 때까지 계속해서 2로 나누므로 O(logN)

더보기
public class Solution {

    public int solution(int n, int a, int b) {
        int answer;

        for(answer = 0; a != b; answer++) {
            a = (a + 1) / 2;
            b = (b + 1) / 2;
        }

        return answer;
    }

}

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Python)

solution 1)

- N: 참가한 인원 수

- 같은 번호가 될 때까지 계속해서 2로 나누는 연산: O(logN)

더보기
def solution(n, a, b):
    answer = 0
    while a != b:
        a = (a + 1) // 2
        b = (b + 1) // 2
        answer += 1
    return answer

solution 2)

solution 3)

더보기
import

 

(JavaScript)

solution 1)

- N: 참가한 인원 수

- 같은 번호가 될 때 까지 계속해서 2로 나누는 연산: O(logN)

더보기
function solution(n, a, b) {
    let answer = 0;
    
    while (a != b) {
        a = Math.ceil(a / 2);
        b = Math.ceil(b / 2);
        answer += 1;
    }
    
    return answer;
}

solution 2)

더보기
import

solution 3)

더보기
import

 

반응형