|
์ฝ๋ ์์ฑํ๊ธฐ
import java.util.Arrays;
public class Programmers_binarySearch {
public static int solution(int[] d, int budget) {
int answer = 0;
int sum = 0;
// 1.
Arrays.sort(d);
// 2.
for (int i = 0; i < d.length; i++) {
if(sum<=budget){
sum += d[i];
answer++;
}
}
// 3.
if (sum <= budget)
return answer;
else {
return answer - 1;
}
}
public static void main(String[] args) {
System.out.println(solution(new int[]{1, 3, 2, 5, 4}, 9)); // 3
System.out.println(solution(new int[]{2, 2, 3, 3}, 10)); // 4
System.out.println(solution(new int[]{1}, 10)); // 1
}
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
์ด๋ถ ํ์์ผ๋ก ํ๊ธฐ ๋ณด๋ค๋ ์ํ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
1.
๋ฐฐ์ด d ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
2.
๋ฐ๋ณต๋ฌธ์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด ๊ธธ์ด๋งํผ ์์์๋ถํฐ ์ฃผ์ด์ง ์์ฐ์ด ๋์น ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ค.
3.
๋ํ ๊ฐ์ด ์ฃผ์ด์ง ์์ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๊ทธ๋๋ก answer ๋ฐํ
๋ ํฌ๋ค๋ฉด ํ๋ฒ ๋ ๊ณ์ฐ์ ํ์ผ๋ฏ๋ก answer-1 ํ์ฌ ๋ฐํ
< ๋งํ๋ ๋ถ๋ถ >
d | budget | result |
[1] | 10 | 1 |
// 3.
if (sum == budget)
return answer;
else {
return answer - 1;
}
Java
๋ณต์ฌ
์ ์ถํ ์ฝ๋๊ฐ ํ๋ ค ๋ฐ๋ก๋ฅผ ์ฐพ๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ ธ๋ค.
์ฐ์ ์ฒ์์๋ ๋จ์ํ๊ฒ MIN, MAX ๊ฐ์ ๋ฃ์ด ํ์ธํ์๋๋ฐ ๋ฐ๋ก ๋ฐ๋ก๋ฅผ ์ฐพ์๋ค!
๊ทธ ๋ฐ๋ก๋ ์์ ์์๋ฅผ ๋ฃ์์ ๋ ๊ฒฐ๊ณผ๊ฐ์ด 0 ์ด ๋์๋ค.
์กฐ๊ฑด๋ฌธ์์ if (sum == budget) ์ if (sum <= budget) ๋ก ๋ฐ๊พธ์ด ํด๊ฒฐํ์๋ค.