1. ๋ฌธ์ ์ ๋ํ์ฌ ๐ฆ
(1) ์กฐ๊ฑด ๋ถ์ ๐
ํ์ฌ ํ์ธ ์ค์ธ ๋ ผ๋ฌธ์ ์ธ์ฉํ์๊ฐ h๋ฒ ์ด์, ์ ์ฒด ๋ ผ๋ฌธ ์ค h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ ์๋ h๊ฐ ์ด์์ด ๋ ์ ์๋ h๊ฐ์ ์ต๋๊ฐ์ ๊ตฌํ๋ผ
2. ์ฝ๋๊ฐ ๋์ค๊ธฐ๊น์ง ๐ ๏ธ
KEY WORD
: ์ ๋ ฌ
์ ๋ ฌ๋ก ํ๋ฉด ๋๋ค๋ ๊ฒ์ ๋ช
ํํ๋๋ฐ, ๋ฌธ์ ๋ ์ ๋ฌธ์ฅ์ ์ด๋ป๊ฒ ํด์ํ ๊ฒ์ด๋๋ค.
๋ด๊ฐ ์๋ชป ํ์๋ ์ง์ ๊น์ง ๋ํด์, ์ค๋ช
ํ๋ฉด ๋ ๊ฐ์ง๋ก ๋๋ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฒด ๋ ผ๋ฌธ์ ์ธ์ฉํ์๋ฅผ ์ ๋ ฌ
- ์ด์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๋ ผ๋ฌธ๋ถํฐ ์ํํ๋ฉฐ 2๋ฒ์ ์ํํ๋ค.
2-1 ํ์ฌ ์กฐํ ์ค์ธ ๋
ผ๋ฌธ์ ์ธ์ฉ ํ์ ํ์ธ, ์ดํ ๊ทธ ์ค๋ฅธ์ชฝ ๋
ผ๋ฌธ์ ์๋ฅผ ํ์ธํ์ฌ,
์ธ์ฉ ํ์ <= ๋
ผ๋ฌธ์ ์ ์ธ์ง ํ์ธ (๋ง์ผ๋ฉด true ์๋๋ฉด false)
2-2 ํ์ฌ ์กฐํ ์ค์ธ ์์น ์ค๋ฅธ์ชฝ ๋ ผ๋ฌธ ์๋ฅผ ํ์ธ, ํ์ฌ ์กฐํ ์ค์ธ ๋ ผ๋ฌธ์ ์ธ์ฉํ์๊ฐ ์์ ์ ์ผ์ชฝํธ ๋ ผ๋ฌธ์ ์๋ณด๋ค ํฐ์ง ์ํฐ์ง ํ์ธ, ํฌ๋ฉด true ์๋๋ฉด false
2-1๋ฒ์ ๋ค์ ๋ฐ๋ก ๋๋ฌธ์ ํ๋ ธ๋ค.
[5,6,7,8] => ์ด๊ฒ์ ์ ๋ต์ 4์ธ๋ฐ, 2-1๋ฒ์ผ๋ก ํ๋ฉด 0์ด ๋์จ๋ค.
๊ทธ ์ด์ ๋ ๋ฌด์กฐ๊ฑด ํน์ ๋
ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๊ธฐ์๋ ์ฒซ ๋
ผ๋ฌธ์ ์ธ์ฉํ์์ธ 5๋ฅผ ๊ตฌํ์ผ๋, ๊ทธ ์ค๋ฅธ์ชฝ์ ๊ฐ๋ค์ ๊ทธ๋ณด๋ค ์์ผ๋ฏ๋ก, ๋ต์ผ๋ก ์ถฉ์กฑ๋์ง ์๋๋ค.
ํ์ง๋ง 2-2๋ฅผ ์ฌ์ฉํ๋ฉด, ํน์ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์ ์ดํ ๊ฐ๋ ์ถฉ๋ถํ ๊ณ์ฐ์ ์ฐ์ ํ ์ ์๋ค.
(1) ์๊ฐ๋ณต์ก๋ ๋ถ์ โณ
๋ ผ๋ฌธ ๊ฐ์๊ฐ 1,000ํธ์ด๋ผ ์ด๋ฌํ ๊ณ์ฐ์ ๋ฌด์๋ฏธํ๋ค.
3. ์ฝ๋ ๐
import java.util.*;
class Solution {
public int solution(int[] citations) {
int max = 0;
Arrays.sort(citations);
for(int i = 0; i < citations.length; i++){
int right = citations.length - i;
if(citations[i] >= right) {
max = right;
break;
}
}
return max;
}
}
4. ํธ๋ฌ๋ธ ์ํ or ๋ฐฐ์ด ์ ๐
- ๋ฐ๋ก ์ฐพ๋ ์ฐ์ต์ ํด์ผํ ๊ฒ ๊ฐ๋ค.