슈콩

COS PRO 1급 JAVA 몇번 연산을 해야 하나요 본문

카테고리 없음

COS PRO 1급 JAVA 몇번 연산을 해야 하나요

shukong 2026. 1. 2. 22:31

 

 

[소스 코드]

import java.util.*;

class Main {
	public int solution(int number, int target) {
		int answer = 0;
		Queue<int[]> q = new LinkedList<>();
		boolean[] visit = new boolean[30000];
		q.offer(new int[]{number,0});
		visit[number] = true;
		while(!q.isEmpty()){
			int[] curr = q.poll();
			if(curr[0]==target){
				answer = curr[1];
				break;
			}
			else{   
				if(!visit[curr[0]+1]){
					q.offer(new int[]{curr[0]+1,curr[1]+1});
					visit[curr[0]+1] = true;
				}
				if(curr[0]-1>=0 && !visit[curr[0]-1]){
					q.offer(new int[]{curr[0]-1,curr[1]+1});
					visit[curr[0]-1] = true;
				}
				if(!visit[curr[0]*2]){
					q.offer(new int[]{curr[0]*2,curr[1]+1});
					visit[curr[0]*2] = true;
				}
			}
		}
		return answer;
	}
}