알고리즘
프로그래머스 숫자 변환하기 (JAVA)
박카스마시며코딩
2023. 2. 19. 18:05
https://school.programmers.co.kr/learn/courses/30/lessons/154538
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
private static final int NOT_FOUND = -1;
public int solution(int x, int y, int n) {
int answer = cal(x,y,n);
return answer;
}
private static int cal(int start,int end , int num){
Queue<Integer> q = new LinkedList<>();
q.offer(start);
int time = 0;
Set<Integer> visited = new HashSet<>();
while(!q.isEmpty()){
int size = q.size();
for(int s = 0 ; s < size ; s++){
int now = q.poll();
if(now == end){
return time;
}
int next = 0;
for(int i = 1 ; i <= 3 ; i++){
if(i == 1){
next = now + num;
}else{
next = now * i;
}
if(!visited.contains(next) && next <= end){
q.offer(next);
visited.add(next);
}
}
}
time++;
}
return NOT_FOUND;
}
}