ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ] BOJ 17521. Byte coin
    Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ/BOJ 2020. 8. 24. 13:48

    ๐Ÿ“š ๋ฌธ์ œ ์„ค๋ช…

    ๊ตญ์ œ์ž๋ณธ๋ถ€๋™์‚ฐํšŒ์‚ฌ(ICPC)๋Š” ๋ฐ”์ดํŠธ ์ฝ”์ธ(Byte Coin)์— ์ž๊ธˆ์„ ํˆฌ์žํ•˜๊ณ  ์žˆ๋‹ค. ๋ฐ”์ดํŠธ ์ฝ”์ธ์€ ๊น€๋ฐ•์‚ฌ๊ฐ€ ๋งŒ๋“  ๊ฐ€์ƒ ํ™”ํ์ด๋‹ค. ์‹ค์ œ๋กœ๋Š” ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ์˜ˆ์ƒํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ ๋“ฑ๋ฝ์„ ๋ฏธ๋ฆฌ ์ •ํ™•ํžˆ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

    ์šฐ๋ฆฌ๋Š” 1์ผ๋ถ€ํ„ฐ n์ผ๊นŒ์ง€ n์ผ ๋™์•ˆ ๊ทธ๋ฆผ 1๊ณผ ๊ฐ™์ด ๋ฐ”์ดํŠธ ์ฝ”์ธ์˜ ๋“ฑ๋ฝ์„ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ดˆ๊ธฐ ํ˜„๊ธˆ W๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ๋‹ค. ๊ทธ๋ฆผ 1์˜ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ๋Š” ํ•ด๋‹น ์ผ์ž์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋งค์ผ ๋ฐ”์ดํŠธ ์ฝ”์ธ์„ ๋งค์ˆ˜ํ•˜๊ฑฐ๋‚˜ ๋งค๋„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋‹ค๋งŒ ๋ฐ”์ดํŠธ ์ฝ”์ธ ํ•˜๋‚˜๋ฅผ ๋‚˜๋ˆ„์–ด ๋งค๋„ํ•˜๊ฑฐ๋‚˜ ๋งค์ˆ˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์šฐ๋ฆฌ๋Š” n์ผ ๋‚  ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•  ๋•Œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ˜„๊ธˆ์„ ์ตœ๋Œ€ํ™”ํ•˜๊ณ  ์‹ถ๋‹ค. 

     

    ๊ทธ๋ฆผ 1. 10 ์ผ๊ฐ„ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ ๋“ฑ๋ฝ ๊ทธ๋ž˜ํ”„

     

    ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทธ๋ฆผ 1๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๋“ฑ๋ฝ ๊ทธ๋ž˜ํ”„๋ฅผ ์ฒซ๋‚  ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ์–ด์ง„ ์ดˆ๊ธฐ ํ˜„๊ธˆ์ด 24๋ผ๊ณ  ํ•˜์ž. ์ˆ˜์ต์„ ์ตœ๋Œ€ํ•œ ๋†’์ด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”์ดํŠธ ์ฝ”์ธ์„ ๋งค์ˆ˜, ๋งค๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋‚  ํ˜„๊ธˆ 20์„ ์จ์„œ 4๊ฐœ์˜ ์ฝ”์ธ์„ ์‚ฐ๋‹ค. ๋‘˜์งธ ๋‚  ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•ด์„œ ํ˜„๊ธˆ 28์„ ์–ป๊ณ  ๋ชจ๋‘ 32์˜ ํ˜„๊ธˆ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. 5์ผ์งธ ๋˜๋Š” ๋‚  ํ˜„๊ธˆ 32๋ฅผ ์จ์„œ 16๊ฐœ์˜ ์ฝ”์ธ์„ ๋งค์ˆ˜ํ•œ๋‹ค. 7์ผ์งธ ๋˜๋Š” ๋‚  ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•ด์„œ ๋ชจ๋‘ 128์˜ ํ˜„๊ธˆ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. 9์ผ์งธ ๋˜๋Š” ๋‚  ํ˜„๊ธˆ 126์„ ์จ์„œ 42๊ฐœ์˜ ์ฝ”์ธ์„ ์‚ฌ๊ณ  10์ผ ๋‚  ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด 10์ผ ๋‚  ํ˜„๊ธˆ์ด 170์ด ๋˜๊ณ  ์ด๊ฒƒ์ด ์ตœ๋Œ€์ด๋‹ค.

     

    ์š”์ผ ์ˆ˜ n, ์ดˆ๊ธฐ ํ˜„๊ธˆ W, 1์ผ๋ถ€ํ„ฐ n์ผ๊นŒ์ง€ ๊ฐ ์š”์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์ด ์ฃผ์–ด์งˆ ๋•Œ, n์ผ ๋‚  ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•  ๋•Œ ๋ณด์œ ํ•˜๊ฒŒ ๋  ์ตœ์ข… ํ˜„๊ธˆ์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

     

    ์ž…๋ ฅ
    ์ž…๋ ฅ์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์— ์š”์ผ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ n๊ณผ ์ดˆ๊ธฐ ํ˜„๊ธˆ W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n ๊ฐœ์˜ ์ค„์—์„œ, i๋ฒˆ์งธ ์ค„์€ i์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ si๊ฐ€ ์ฃผ์–ด์ง„๋‹ค(1 ≤ si ≤ 50).
    ์ถœ๋ ฅ
    ์ถœ๋ ฅ์€ ํ‘œ์ค€์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. n์ผ ๋‚  ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์ฝ”์ธ์„ ๋งค๋„ํ•  ๋•Œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ˜„๊ธˆ์˜ ์ตœ๋Œ“๊ฐ’์„ ํ•œ ํ–‰์— ์ถœ๋ ฅํ•œ๋‹ค. ๋น„๋ก ์ดˆ๊ธฐ ํ˜„๊ธˆ W๋Š” ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€ ์•Š์ง€๋งŒ ์ตœ์ข… ํ˜„๊ธˆ์€ ๋งค์šฐ ์ปค์งˆ ์ˆ˜ ์žˆ์Œ์— ์ฃผ์˜ํ•˜์ž.

     

    ๐ŸŽฏ ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋‚˜

    1. Greedy

    import java.util.Scanner;
    
    public class BOJ_17512 {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int day = sc.nextInt();
    		long money = sc.nextInt();
    		
    		int[] prices = new int[15];
    		
    		for(int i = 0; i < day; i++) prices[i] = sc.nextInt();
    		
    		for(int i = 1; i < day; i++) {
    			if(prices[i - 1] < prices[i]) {
    				long coin = money / prices[i - 1];
    				money += (prices[i] - prices[i - 1]) * coin;
    			}
    		}
    		
    		System.out.println(money);
    		sc.close();
    	}
    
    }

     

    ๐Ÿง ์™œ ์ €๋ ‡๊ฒŒ ํ’€์—ˆ๋‚˜

    1. Greedy

    ์ตœ๋Œ€์˜ ์ด์ต์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” greedyํ•˜๊ฒŒ ํ–‰๋™ํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰, ๋‚ด์ผ์˜ ์ฝ”์ธ ๊ฐ€๊ฒฉ์ด ์˜ค๋Š˜์˜ ์ฝ”์ธ ๊ฐ€๊ฒฉ๋ณด๋‹ค ๋น„์‹ธ๋ฉด ์˜ค๋Š˜ ์‚ด ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์‚ฌ์„œ ๋‚ด์ผ ํŒŒ๋Š” ๊ฒƒ์ด๋‹ค.

     

    ๐Ÿ“– ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜

    ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋Š” ํ’€ ๋•Œ๋งˆ๋‹ค ํ™•์‹ ๋ณด๋‹ค๋Š” ์ง๊ด€์— ์˜์กดํ•ด์„œ ํ‘ธ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋ฅผ ํ™•์‹ ์„ ๊ฐ€์ง€๊ณ  ํ’€ ์ˆ˜ ์žˆ์„๊นŒ?

     

    ๋Œ“๊ธ€

Designed by Tistory.