๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์
๋ฌธ์ ์ ํ์กฐ๊ฑด
1. ํ ๋ฒ์ ์ต๋ ๋๋ช
๊น์ง ๋ณดํธ์ ํ์ธ ์ ์์
2. ๋ชธ๋ฌด๊ฒ ํฉ์ด `limit` ์ดํ์ฌ์ผ ํจ
๋ฐ๋ผ์ ์ต์๋ณดํธ๋ฅผ ์ฌ์ฉํ๋ ์ ๋ต์ ์ง๋ ค๋ฉด
๋ฐฐ์ด์ ์ ๋ ฌํ์ฌ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋ + ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋ ์กฐํฉ์ ์ง์ง์ด์ผ ํจ.
๊ฐ์ฅ ํฐ ๋ชธ๋ฌด๊ฒ๋ฅผ ๊ฐ์ง ์ฌ๋์ ์ต๋ํ ๋นจ๋ฆฌ ์ฒ๋ฆฌํ๋ฉด์๋ ๋ณดํธ ์ฌ์ฉ์ ์ค์ผ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ฝ ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit ์ดํ๋ผ๋ฉด, ํ ๋ณดํธ์ ํ์ธ ์ ์๋ค.
ํฉ์ด limit์ ์ด๊ณผํ๋ค๋ฉด, ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋ฐ๋์ ํ ๋ช
๋ง ๋ณดํธ์ ํ์์ผ ํ๋ค.
์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ๋จ์ ์ฌ๋๋ค์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ต์ ์ ์ ํ์ด๋ค.
โญ 3. ์ ๋ต์ฝ๋
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
Arrays.sort(people);
// idx ๋ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์ธ๋ฑ์ค
// i ๋ ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ์ธ๋ฑ์ค
int idx = 0;
for(int i = people.length-1; i>=idx; i--) {
if(people[i]+people[idx]<=limit) {
answer++;
idx++;
} else answer++;
}
return answer;
}
}
1. ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐฐ์ด ์ ๋ ฌํ๊ธฐ
2. ๋ง์ง๋ง ์์๋ถํฐ idx๋ณด๋ค ํฌ๊ฑฐ๋ ์์๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฐ๋ค.
- ๋ง์ง๋ง์์ = ๋ชธ๋ฌด๊ฒ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋๊ฐ๋ ์ฌ๋
- idx = ๋ชธ๋ฌด๊ฒ๊ฐ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋
3. ๋ง์ฝ ๋ชธ๋ฌด๊ฒ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋๊ฐ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ์ ์ ๊ฒ ๋๊ฐ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit์ ๋์ง ์๋๋ค๋ฉด
answer์ 1 ์ฆ๊ฐ ํ idx๊ฐ๋ 1 ์ฆ๊ฐ์ํจ๋ค. => idx๋ ๋ชธ๋ฌด๊ฒ๊ฐ ์์ ์ฌ๋์ ์์น๋ฅผ ๋ํ๋ด๋ ๋ณ์์ด๋ค.
3. ๋ชธ๋ฌด๊ฒ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋๊ฐ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ์ ์ ๊ฒ ๋๊ฐ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit์ ๋์ ๋๋?
๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๋ง ๋ณดํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ฆ, ํฉ์ด limit์ ๋์ผ๋ฉด ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋(idx)์ ๋ณดํธ์ ํจ๊ป ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ผ์, ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋(i)์ ๋จ๋
์ผ๋ก ๋ณดํธ๋ฅผ ํ์ผ ํ๋ฏ๋ก answer๋ฅผ 1 ์ฆ๊ฐํ๋ค.
๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ์ด๋ฏธ ๋ณดํธ๋ฅผ ํ์ผ๋ฏ๋ก i--๋ฅผ ํตํด ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ์ฒ๋ฆฌํ๊ณ (์์น ๊ฐ์(, ๊ทธ๋ค์์ผ๋ก ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋์์ผ๋ก ์งํํ๋ค.
๋ฐ๋ฉด ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์์น(idx)๋ ๋ณํ๊ฐ ์๋ค. ์๋ํ๋ฉด limit์ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์์ง ์ฒ๋ฆฌ๋์ง ์์๊ธฐ ๋๋ฌธ์ idx๋ ๊ทธ๋๋ก ์ ์ง๋๊ณ , ๋ค์ ๋ฐ๋ณต์์ ๋ค์ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋๊ณผ ์๋ก์ด ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋น๊ตํด ์ค๋ค.
๐๐ป ์ข์์ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ์ฝ๋
import java.util.Arrays;
class Solution {
public int solution(int[] people, int limit) {
Arrays.sort(people);
int i = 0, j = people.length - 1;
for (; i < j; --j) {
if (people[i] + people[j] <= limit)
++i;
}
return people.length - i;
}
}
์ฌ๋ ์ - ๋ ๋ช
ํ์ฐ๋ ๊ฒฝ์ฐ์ ์ = ํ ๋ช
ํ์ฐ๋ ๊ฒฝ์ฐ์ ์ + ๋ ๋ช
ํ์ฐ๋ ๊ฒฝ์ฐ์ ์
์ฌ๋ ์ = ์ด๊ณผํ๋ ์ฌ๋๋ค ๊ตฌ๋ช
๋ณดํธ ์ + ์ง์ง์ด ํ๋ ์ฌ๋๋ค ๊ตฌ๋ช
๋ณดํธ ์ * 2
๐ฆ 4. ๊ฐ์ ์ ํ ๋ฌธ์
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ฒด์ก๋ณต (๊ทธ๋ฆฌ๋/Greedy)
๐ 1. ๋ฌธ์ ์ค๋ช ๐ก 2. ์ ๊ทผ๋ฐฉ์๋ฌธ์ ์์ ์ฃผ์ด์ง ๊ฒn : ์ ์ฒด ํ์์ ์lost : ์ฒด์ก๋ณต ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๋ค (๋ฐฐ์ด) reserve : ์ฌ๋ฒ ๊ฐ์ ธ์จ ํ์ ๋ฒํธ๋ค (๋ฐฐ์ด)์ฒด์ก๋ณต์ ์,๋ค ๋ฒํธ ํ์ ์๋ง ๋น๋ ค
awesomepossum.tistory.com
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์กฐ์ด์คํฑ (๊ทธ๋ฆฌ๋)
๐ 1. ๋ฌธ์ ์ค๋ช ๐ก 2. ์ ๊ทผ๋ฐฉ์ ์กฐ์ด์คํฑ์ ์ ์์ผ๋ก ์ด๋ํ๋ ์ข์ฐ ์ด๋ ํ์(move) ์กฐ์ด์คํฑ ์ข์ฐ๋ก ์ด๋ํ๋ฉด์ ์ํ๋ฒณ ๋ณ๊ฒฝ๋ฅผ ์ํด ์ํ ์ด๋ ํ๋ ํ์(answer) ๋ ๊ฐ๋ฅผ answer์ ๋์ ํ๋ฉด์ ๋
awesomepossum.tistory.com
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ํฐ ์ ๋ง๋ค๊ธฐ (๊ทธ๋ฆฌ๋/Greedy)
๐ 1. ๋ฌธ์ ์ค๋ช ๐ก 2. ์ ๊ทผ๋ฐฉ์์์ ํ์์ ์๋๋ ์ด์ ๋ฌธ์ ์์ number≤1,000,000์ผ๋ก ์ต๋ ๋ฐฑ๋ง์๋ฆฌ ์ซ์๊ฐ ๋ ์ ์๋ค. number ๊ฐ์ด ๋๋ฌด ์ปค์ ์์ ํ์์ ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค. k๋ 1 ์ด์ len(num
awesomepossum.tistory.com
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋จ์์นด๋ฉ๋ผ (๊ทธ๋ฆฌ๋/Greedy)
๐ 1. ๋ฌธ์ ์ค๋ช ๐ก 2. ์ ๊ทผ๋ฐฉ์์ ์ถ๋ ฅ ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฆผ ๊ทธ๋ ค๋ดค๋ค ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์นํด์ผ ํ๋ฏ๋ก ๊ตฌ๊ฐ ์ข ๋ฃ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์นํด์ผ ํ๋ฏ๋ก ๊ตฌ๊ฐ
awesomepossum.tistory.com