๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java ] ์˜ˆ์‚ฐ

by carrot0911 2025. 3. 28.

๋ฌธ์ œ ์„ค๋ช…

https://school.programmers.co.kr/learn/courses/30/lessons/12982

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

S์‚ฌ์—์„œ๋Š” ๊ฐ ๋ถ€์„œ์— ํ•„์š”ํ•œ ๋ฌผํ’ˆ์„ ์ง€์›ํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ๋ถ€์„œ๋ณ„๋กœ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธˆ์•ก์„ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ „์ฒด ์˜ˆ์‚ฐ์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ๋•Œ๋Š” ๊ฐ ๋ถ€์„œ๊ฐ€ ์‹ ์ฒญํ•œ ๊ธˆ์•ก๋งŒํผ์„ ๋ชจ๋‘ ์ง€์›ํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1,000์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์—๋Š” ์ •ํ™•ํžˆ 1,000์›์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฉฐ, 1,000์›๋ณด๋‹ค ์ ์€ ๊ธˆ์•ก์„ ์ง€์›ํ•ด ์ค„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด d์™€ ์˜ˆ์‚ฐ budget์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ถ€์„œ์— ๋ฌผํ’ˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • d๋Š” ๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด์ด๋ฉฐ, ๊ธธ์ด(์ „์ฒด ๋ถ€์„œ์˜ ๊ฐœ์ˆ˜)๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • d์˜ ๊ฐ ์›์†Œ๋Š” ๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ถ€์„œ๋ณ„ ์‹ ์ฒญ ๊ธˆ์•ก์€ 1 ์ด์ƒ 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • budget์€ ์˜ˆ์‚ฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 1 ์ด์ƒ 10,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

d budget result
[1, 3, 2, 5, 4] 9 3
[2, 2, 3, 3] 10 4

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๊ฐ ๋ถ€์„œ์—์„œ [1์›, 3์›, 2์›, 5์›, 4์›]๋งŒํผ์˜ ๊ธˆ์•ก์„ ์‹ ์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—, 1์›, 2์›, 4์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ฃผ๋ฉด ์˜ˆ์‚ฐ 9์›์—์„œ 7์›์ด ์†Œ๋น„๋˜์–ด 2์›์ด ๋‚จ์Šต๋‹ˆ๋‹ค.
  • ํ•ญ์ƒ ์ •ํ™•ํžˆ ์‹ ์ฒญํ•œ ๊ธˆ์•ก๋งŒํผ ์ง€์›ํ•ด ์ค˜์•ผ ํ•˜๋ฏ€๋กœ ๋‚จ์€ 2์›์œผ๋กœ ๋‚˜๋จธ์ง€ ๋ถ€์„œ๋ฅผ ์ง€์›ํ•ด ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ„ ๋ฐฉ๋ฒ• ์™ธ์— 3๊ฐœ ๋ถ€์„œ๋ฅผ ์ง€์›ํ•ด ์ค„ ๋ฐฉ๋ฒ•๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • 1์›, 2์›, 3์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ฃผ๋ ค๋ฉด 6์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • 1์›, 2์›, 5์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด์ฃผ๋ ค๋ฉด 8์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • 1์›, 3์›, 4์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด์ฃผ๋ ค๋ฉด 8์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • 1์›, 3์›, 5์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด์ฃผ๋ ค๋ฉด 9์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • 3๊ฐœ ๋ถ€์„œ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜๋Š” ์—†์œผ๋ฏ€๋กœ ์ตœ๋Œ€ 3๊ฐœ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋ชจ๋“  ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ฃผ๋ฉด 10์›์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ๋Œ€ 4๊ฐœ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

import java.util.*;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        
        // ๋ฐฐ์—ด d ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        Arrays.sort(d);
        
        // ๋ฐ˜๋ณต๋ฌธ ํ™œ์šฉ
        for (int i = 0; i < d.length; i++) {
            // ๋งŒ์•ฝ budget์ด d์˜ i๋ฒˆ์งธ ๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ
            if (budget >= d[i]) {
                // d[i] ๊ฐ’ ๋นผ๊ธฐ
                budget -= d[i];
                // answer +1
                answer++;
            }
        }
        
        // answer ๋ฐ˜ํ™˜
        return answer;
    }
}

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์ƒ๊ฐํ•œ ๋ฐฉํ–ฅ

  • ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ budget์—์„œ ๋นผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ
  • ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์„œ ํ•˜๋‚˜์”ฉ ๊ณ„์‚ฐํ•ด์•ผ๊ฒ ์ง€?!
  • ์Œ์ˆ˜๊ฐ€ ๋˜๊ธฐ ์ „๊นŒ์ง€๋งŒ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ผ.