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

[PCCP] Lv2: 점프와 순간 이동(12980) 해설

by cogito21_cpp 2024. 12. 25.
반응형

문제

- 문제 링크: 점프와 순간 이동

 

해설

- 자료구조: 

- 시간복잡도: 

 

(풀이과정)

1) 

2) 

3) 

4) 

 

코드

(C언어)

solution 1)

더보기

solution 1

#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C++)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(C#)

solution 1)

더보기
#include<>

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Java)

solution 1)

- N: 입력으로 주어진 숫자

- N을 이진수로 변환할 때 시간 복잡도: O(logN)

- 변환된 문자열의 길이는 최대 logN이므로 문자열에서 "1"을 셀 때의 시간 복잡도는 O(logN)

- 최종 시간 복잡도: O(logN)

더보기
class Solution {
    public int solution(int n) {
        return Integer.toBinaryString(n).replace("0", "").length();
    }
}

solution 2)

더보기
#include<>

solution 3)

더보기
#include<>

 

(Python)

solution 1)

- N: 입력으로 주어진 숫자

- N을 이진수로 변환: O(logN)

- 변환된 문자열의 길이는 최대 logN이므로 문자열에서 "1"을 셀 때의 시간 복자도: O(logN)

- 최종 시간 복잡도: O(logN)

더보기
def solution(N):
    return bin(N).count("1") # 2진수로 변환하고 1의 개수를 반환

solution 2)

더보기
def solution(n):
    ans = 0
    
    while n !=0 :
        if n % 2 == 1:
            ans+=1
        n //= 2
    

    return ans

solution 3)

더보기
import

 

(JavaScript)

solution 1)

- N: 입력으로 주어진 숫자

- N을 이진수로 변환: O(logN)

- 변환된 문자열의 길이는 최대 logN이므로 문자열에서 '1'을 셀 때의 시간복잡도: O(logN)

- 최종 시간 복잡도: O(logN)

더보기
function solution(n) {
    return n.toString(2).split('').filter((c) => c === '1').length;
}

solution 2)

더보기
import

solution 3)

더보기
import

 

반응형