์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์ฝ๋ฉํ ์คํธ
- ํ๋ก ํธ์๋
- CSS
- fetch API
- REACT
- useEffect
- Flex
- useRef
- Gatsby
- ํ๋ก๊ทธ๋๋จธ์ค
- Props
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- history api
- ๋ฐ๋ธ์ฝ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ธ๋ก๊ทธ
- float
- position
- Today
- Total
Daehyunii's Dev-blog
๋ฎค์ง๋น๋์ค(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) ๋ณธ๋ฌธ
๋ฎค์ง๋น๋์ค(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
Daehyunii 2022. 9. 6. 19:03๋ฌธ์ (์ถ์ฒ : ์ธํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๊ฐ์, ์ ๋ณด์ฌ๋ฆผํผ์๋)
์ง๋๋ ์ฝ๋์์๋ ๋ถ์ธ์ถ์ ๊ฐ์ ์กฐ์ํ์ ๋ผ์ด๋ธ ๋์์์ DVD๋ก ๋ง๋ค์ด ํ๋งคํ๋ ค ํ๋ค. DVD์๋ ์ด N๊ฐ์ ๊ณก์ด ๋ค์ด๊ฐ๋๋ฐ, DVD์ ๋ นํํ ๋์๋ ๋ผ์ด๋ธ์์์ ์์๊ฐ ๊ทธ๋๋ก ์ ์ง ๋์ด์ผ ํ๋ค. ์์๊ฐ ๋ฐ๋๋ ๊ฒ์ ์ฐ๋ฆฌ์ ๊ฐ์ ์กฐ์ํ์จ๊ฐ ๋งค์ฐ ์ซ์ดํ๋ค. ์ฆ, 1๋ฒ ๋ ธ๋์ 5๋ฒ ๋ ธ๋๋ฅผ ๊ฐ์ DVD์ ๋ นํํ๊ธฐ ์ํด์๋ 1๋ฒ๊ณผ 5๋ฒ ์ฌ์ด์ ๋ชจ๋ ๋ ธ๋๋ ๊ฐ์ DVD์ ๋ นํํด์ผ ํ๋ค. ๋ํ ํ ๋ ธ๋๋ฅผ ์ชผ๊ฐ์ ๋ ๊ฐ์ DVD์ ๋ นํํ๋ฉด ์๋๋ค.
์ง๋๋ ์ฝ๋ ์ ์ฅ์์๋ ์ด DVD๊ฐ ํ๋ฆด ๊ฒ์ธ์ง ํ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์ฌ์ ์ ๋ญ๋น๋๋ DVD๋ฅผ ๊ฐ๊ธ์ ์ค์ด๋ ค๊ณ ํ๋ค. ๊ณ ๋ฏผ ๋์ ์ง๋๋ ์ฝ๋๋ M๊ฐ์ DVD์ ๋ชจ๋ ๋์์์ ๋ นํํ๊ธฐ ๋ก ํ์๋ค. ์ด ๋ DVD์ ํฌ๊ธฐ(๋ นํ ๊ฐ๋ฅํ ๊ธธ์ด)๋ฅผ ์ต์๋ก ํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ M๊ฐ์ DVD๋ ๋ชจ๋ ๊ฐ์ ํฌ๊ธฐ์ฌ์ผ ์ ์กฐ์๊ฐ๊ฐ ์ ๊ฒ ๋ค๊ธฐ ๋๋ฌธ์ ๊ผญ ๊ฐ์ ํฌ๊ธฐ๋ก ํด์ผ ํ๋ค.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ์งธ ์ค์ ์์ฐ์ N(1≤N≤1,000), M(1≤M≤N)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ ์กฐ์ํ์ด ๋ผ์ด๋ธ์์ ๋ถ๋ฅธ ์์๋๋ก ๋ถ๋ฅธ ๊ณก์ ๊ธธ์ด๊ฐ ๋ถ ๋จ์๋ก(์์ฐ์) ์ฃผ์ด์ง๋ค. ๋ถ๋ฅธ ๊ณก์ ๊ธธ์ด๋ 10,000๋ถ์ ๋์ง ์๋๋ค๊ณ ๊ฐ์ ํ์.
โฃ ์ถ๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค๋ถํฐ DVD์ ์ต์ ์ฉ๋ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅํ์ธ์.
โฃ ์
๋ ฅ์์ 1
9 3
1 2 3 4 5 6 7 8 9
โฃ ์ถ๋ ฅ์์ 1
17
์ค๋ช : 3๊ฐ์ DVD์ฉ๋์ด 17๋ถ์ง๋ฆฌ์ด๋ฉด (1, 2, 3, 4, 5) (6, 7), (8, 9) ์ด๋ ๊ฒ 3๊ฐ์ DVD๋ก ๋ น์์ ํ ์ ์๋ค. 17๋ถ ์ฉ๋๋ณด๋ค ์์ ์ฉ๋์ผ๋ก๋ 3๊ฐ์ DVD์ ๋ชจ๋ ์์์ ๋ นํํ ์ ์๋ค.
Tip
๋ฌธ์ ํ์ด
//์ ๋ต
function count(songs, capacity){
let cnt=1, sum=0; // ์ฉ๋์ด capacity์ธ dvd ํ ์ฅ์ ๋ฌด์กฐ๊ฑด ์๋๊ฒ์
for(let x of songs){
if(sum+x > capacity){ // ๋ํ์๋ ์ฉ๋๋ณด๋ค ์ปค์ง๋ฉด
cnt++; // dvd์ ๊ฐ์๊ฐ ํ ์ฅ ๋์ด๋๋๊ฒ์ด๊ณ
sum=x; // ํด๋น x๋ ์๋ก์ด dvd์ ๋ด์์ ํฉ๊ณ์ ์ถ๊ฐํด ์ฃผ๋๊ฒ์
}
else sum+=x; // ๊ทธ๊ฒ์ด ์๋๋ผ๋ฉด sum์ ๊ณ์ ๋์
}
return cnt;
}
function solution(m, songs){
let answer;
let lt=Math.max(...songs);
let rt=songs.reduce((a, b)=>a+b, 0); // a์๋ค๊ฐ b๊ฐ์ ๋์ !(a์ด๊ธฐ์ค์ ์ 0)
while(lt<=rt){
let mid=parseInt((lt+rt)/2);
if(count(songs, mid)<=m){
answer=mid;
rt=mid-1;
}
else{
lt=mid+1;
}
}
return answer;
}
let arr=[1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(solution(3, arr));
'๐ Language & CS knowledge > Algorithm (๊ธฐ์ด๋ฌธ์ ํ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฌ๊ทํจ์ (0) | 2022.09.07 |
---|---|
๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.09.06 |
์ด๋ถ๊ฒ์ (0) | 2022.09.06 |
๊ฒฐํผ์(ํ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.09.06 |
ํ์์ค ๋ฐฐ์ (ํ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.09.06 |