본문 바로가기

알고리즘/JAVA

[JAVA] 백준 알고리즘 2839 : 설탕 배달

반응형


  문제







  소스


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		
		Queue<Integer> q = new LinkedList<Integer>();
		
		int[] answer = new int[N+1];
		int val = 0;
		
		if(N>=5) {
			q.add(5);
			answer[5] = 1;
		}
		if(N>=3) {
			q.add(3);
			answer[3] = 1;
		}
		
		while(!q.isEmpty()) {
			val = q.poll();

			if(val == N) {
				break;
			}
			
			if(val+5 <= N && answer[val+5] == 0) {
				q.add(val+5);
				answer[val+5] = answer[val]+1;
			}
			
			if(val+3 <= N && answer[val+3] == 0) {
				q.add(val+3);
				answer[val+3] = answer[val]+1;
			}	
		}
		System.out.println(answer[N] == 0 ? -1 : answer[N]);	
	}
}





  출처


https://www.acmicpc.net/problem/2839






반응형