코테/프로그래머스

[프로그래머스/Lv.2] 점프와 순간 이동 (JAVA)

imname1am 2023. 9. 7. 17:39
반응형

🔺 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🔺 코드

(틀림 : DP)

틀림 : DP 활용한 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
import java.io.*;
 
public class Solution {
    public long solution(int n) {
        int ans = 0;
    
        long[] dp = new long[n + 1];
        dp[1= dp[2= 1;
        
        if(n <= 2) {
            return dp[n];
        }
        
        for(int i = 3 ; i <= n ; i++) {
            dp[i] = (i % 2 == 0) ? dp[i / 2] : (dp[i-1+ 1) ;
        }
 
        return dp[n];
    }
}
cs

아무래도 N이 10억이다 보니...

 

- 정답

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
import java.io.*;
 
public class Solution {
    public int solution(int n) {
        int ans = 0;
    
        while(n > 0) {
            if(n % 2 == 1) {
                ans++;
            }
            
            n /= 2;
        }
        
        return ans;
    }
}
cs
✅ 해결 아이디어
✔ 재귀 (Top-Down)
- n/2가 홀수인 경우, ans에 1을 더함
- 위 과정을, n이 0보다 클 때까지만 반복

 

💥 유의사항

• 숫자 N, 1 이상 10억 이하의 자연수

 

 


🔺 다른 풀이들

 

[프로그래머스 - Java] 점프와 순간 이동

 

minhamina.tistory.com

 


💬 느낀 점

DP로 풀려다가 장렬히 실패..

담엔 더 빨리 풀겠다

 

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[Java] 프로그래머스 - 점프와 순간 이동 (Level 2)

코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하

seongho96.tistory.com

 

 

반응형