반응형
문제분석
딱 보자마자 DP 문제임을 눈치채면 성공
근데 필자는 BFS로 풀었다.
뭔가 BFS가 좀더 효율적인거같아서 햇는데, 결국 빅데이터일수록 DP가 더 빠르더라..
BFS는 레벨을 기준으로 너비탐색을 한다.
필자는 레벨을 연산횟수와 동일하게보고 BFS를 진행했다.
같은 연산을 여러번하는걸 막기위해 Boolean체크도 잊지않게 해주면된다.
전체 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import java.util.*;
class Solution {
public int solution(int x, int y, int n) {
int answer = 0;
if(x==y){
return 0;
}
boolean[] visited = new boolean[y+1];
Queue<int[]> que = new LinkedList<>();
que.add(new int[]{x,0});
while(!que.isEmpty()){
int[] q =que.poll();
visited[q[0]]=true;
if(q[0]+n==y||q[0]*2==y||q[0]*3==y){
return q[1]+1;
}
if(q[0]*3<=y&&!visited[q[0]*3]) que.add(new int[]{q[0]*3,q[1]+1});
if(q[0]*2<=y&&!visited[q[0]*2]) que.add(new int[]{q[0]*2,q[1]+1});
if(q[0]+n<=y&&!visited[q[0]+n]) que.add(new int[]{q[0]+n,q[1]+1});
}
return -1;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level2' 카테고리의 다른 글
[프로그래머스,Java] Level2: 호텔 대실 (0) | 2023.02.03 |
---|---|
[프로그래머스,Java] Level2: 무인도 여행 (0) | 2023.01.26 |
[프로그래머스,Java] Level2: 뒤에 있는 큰수 (0) | 2023.01.26 |
[프로그래머스,Java] Level2: 시소짝궁 (0) | 2023.01.19 |
[프로그래머스,Java] Level2: 이모티콘 할인행사 (0) | 2023.01.11 |