๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 26934_The Bus Card

๋ฟŒ์•ผ._. 2026. 4. 9. 11:35
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/26934)

< The Bus Card >

 

๋ฌธ์ œ ํ’€์ด 

 

dp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 100, 200, 500 ๋‹จ์œ„๋กœ ์ถฉ์ „ํ•˜์—ฌ ์ถฉ์ „ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•œ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. 

 

my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class _26934_ { // The Bus Card

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		int k = Integer.parseInt(bf.readLine());

		int arr[] = new int[10001];
		int coins[] = { 100, 200, 500 };

		for (int i = 1; i < 10001; i++) {
			for (int j = 0; j < 3; j++) {
				if (i % 100 == 0 && i - coins[j] >= 0) {
					if (arr[i] == 0) {
						arr[i] = arr[i - coins[j]] + 1;
					} else {
						arr[i] = Math.min(arr[i], arr[i - coins[j]] + 1);
					}
				}
			}
		}

		if (arr[k] == 0) {
			for (int i = k; i < 10001; i++) {
				if (arr[i] > 0) {
					System.out.println(arr[i]);
					break;
				}
			}
		} else {
			System.out.println(arr[k]);
		}
	}
}
๋ณ€์ˆ˜)
k : ์ถฉ์ „ํ•  ์–‘
arr : ๊ฐ ๋ˆ๋งŒํผ ์ถฉ์ „ ํšŸ์ˆ˜ 
coins : ์ถฉ์ „ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„

 

์ถฉ์ „ํ•  ์–‘์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ตœ๋Œ€ ๊ฐ’์ธ 10000๋งŒํผ ์‚ดํŽด๋ณด๋ฉฐ ์ถฉ์ „ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋Š” ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. ๋งŒ์•ฝ 100์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๊ณ , ํ˜„์žฌ ๊ฐ’ - ์ถฉ์ „ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„ ๊ฐ’์ด 0 ์ด์ƒ์ด๋ผ๋ฉด ์ตœ์†Œ ํšŸ์ˆ˜๋กœ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. 

 

๋งŒ์•ฝ arr[k] ๊ฐ’์ด 0์ด๋ผ๋ฉด ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์•„ ๋งŽ์ด ์ถฉ์ „ํ•ด์•ผ ํ•˜๋ฏ€๋กœ k๋ณด๋‹ค ํฐ ๊ฐ’ ์ค‘์—์„œ arr[i] ๊ฐ’์ด 0๋ณด๋‹ค ํด ๋•Œ ์ถœ๋ ฅํ•œ๋‹ค. arr[k] ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 27041_Leapcow  (0) 2026.04.08
[Baekjoon] 14767_Flow Shop  (0) 2026.04.06
[Baekjoon] 6245_Cow Solitaire  (0) 2026.04.03
[Baekjoon] 9844_Gecko  (0) 2026.04.02
[Baekjoon] 30337_Linas ir mandarinai  (0) 2026.04.01