๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

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

by ์ฃผ๋ฐœ2 2020. 3. 8.
๋ฐ˜์‘ํ˜•

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜ˆ์‚ฐ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

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

programmers.co.kr

์ฝ”๋“œ

import java.util.*;

class Solution {
  public int solution(int[] d, int budget) {
      int answer = 0;
      int sum = 0;
      Arrays.sort(d);
      for(int i=0; i<d.length; i++){
          sum += d[i];
          if(sum > budget)
              break;
          answer ++;
      }
      return answer;
  }
}

ํ’€์ด

์ž‘๋…„ 8~9์›” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฒ˜์Œ ์ ‘ํ•ด๋ดค๋Š”๋ฐ, ๊ทธ๋•Œ ์ด ๋ฌธ์ œ๋ฅผ ๋ดค์—ˆ๋Š”๋ฐ ์†๋„ ๋ชป๋Œ”์—ˆ๋‹ค... ใ…‹ใ…‹

์ง€๊ธˆ ๋ณด๋‹ˆ ์—„์ฒญ ๋‹จ์ˆœํ•œ ๋ฌธ์ œ์˜€๋‹ค.

๋ถ€์„œ๋ณ„ ์‹ ์ฒญํ•œ ๊ธˆ์•ก d[] ์™€ ์˜ˆ์‚ฐ budget๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ถ€์„œ์— ๋ฌผํ’ˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฐพ์•„์•ผํ•œ๋‹ค.

๊ฐ€์žฅ ๋งŽ์€ ๋ถ€์„œ์— ์ง€์›ํ•˜๋ ค๋ฉด ? ๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋‚ฎ์€๊ณณ๋ถ€ํ„ฐ ์˜ˆ์‚ฐ์„ ์‚ฌ์šฉํ•ด์„œ ๋‚˜๋ˆ ์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ ํ›„ ์˜ˆ์‚ฐ๋ณด๋‹ค ๋ถ€์„œ์— ์ง€์›ํ•˜๋Š” ๊ธˆ์•ก์ด ์ดˆ๊ณผ๋˜๋Š” ๊ฒฝ์šฐ -> ๋ฉˆ์ถ”๋ฉด๋œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€