๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ๊ธฐ์ง๊ตญ ์ค์น ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ๊ธฐ์ง๊ตญ ์ค์น
์์ผ์ด 2022. 2. 17. 23:42๋ฌธ์ ์ค๋ช
N๊ฐ์ ์ํํธ๊ฐ ์ผ๋ ฌ๋ก ์ญ ๋์ด์ ์์ต๋๋ค. ์ด ์ค์์ ์ผ๋ถ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๊ธฐ์ ์ด ๋ฐ์ ํด 5g ์์๊ฐ ๋์์ ธ 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ ค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ 5g ๊ธฐ์ง๊ตญ์ 4g ๊ธฐ์ง๊ตญ๋ณด๋ค ์ ๋ฌ ๋ฒ์๊ฐ ์ข์, 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ฉด ์ด๋ค ์ํํธ์๋ ์ ํ๊ฐ ๋๋ฌํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด 11๊ฐ์ ์ํํธ๊ฐ ์ญ ๋์ด์ ์๊ณ , [4, 11] ๋ฒ์งธ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๋ง์ฝ ์ด 4g ๊ธฐ์ง๊ตญ์ด ์ ํ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ 1์ธ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. (์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ W์ผ ๋, ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ๋ฅผ ์์ชฝ์ผ๋ก W๋งํผ ์ ๋ฌํ ์ ์์ต๋๋ค.)
- ์ด๊ธฐ์, 1, 2, 6, 7, 8, 9๋ฒ์งธ ์ํํธ์๋ ์ ํ๊ฐ ์ ๋ฌ๋์ง ์์ต๋๋ค.
- 1, 7, 9๋ฒ์งธ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ ๊ฒฝ์ฐ, ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
- 3๊ฐ์ ์ํํธ๋ณด๋ค ๋ ๋ง์ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ด๋, ์ฐ๋ฆฌ๋ ๊ธฐ์ง๊ตญ์ ์ต์๋ก ์ค์นํ๋ฉด์ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์์ ์์์์ ์ต์ 3๊ฐ์ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํด์ผ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ํํธ์ ๊ฐ์ N, ํ์ฌ ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ์ ๋ฒํธ๊ฐ ๋ด๊ธด 1์ฐจ์ ๋ฐฐ์ด stations, ์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ W๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฆ์คํด์ผ ํ ๊ธฐ์ง๊ตญ ๊ฐ์์ ์ต์๊ฐ์ ๋ฆฌํดํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
์ ํ์ฌํญ
- N: 200,000,000 ์ดํ์ ์์ฐ์
- stations์ ํฌ๊ธฐ: 10,000 ์ดํ์ ์์ฐ์
- stations๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์๊ณ , ๋ฐฐ์ด์ ๋ด๊ธด ์๋ N๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์ ์์ฐ์์ ๋๋ค.
- W: 10,000 ์ดํ์ ์์ฐ์
์ ์ถ๋ ฅ ์
11 | [4, 11] | 1 | 3 |
16 | [9] | 2 | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์ด๊ธฐ์, 1~6, 12~16๋ฒ์งธ ์ํํธ์๋ ์ ํ๊ฐ ์ ๋ฌ๋์ง ์์ต๋๋ค.
- 3, 6, 14๋ฒ์งธ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ ๊ฒฝ์ฐ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
public int solution(int n, int[] stations, int w) {
int answer = 0;
int cnt = 0;
// ์ํํธ 1๋ฒ๋ถํฐ
int apart = 1;
// ์ํํธ 1๋ฒ๋ถํฐ n๋ฒ๊น์ง
while(apart<=n){
// ์ ํ๋ฅผ ๋ฐ์ ์ ์๋ ์ํํธ ์ต์ ๊ฐ๋ณด๋ค ์ปค์ง๋ฉด
if(cnt<stations.length && apart >= stations[cnt] - w){
// ๋ฐ์ด ๋๊ธฐ
apart = stations[cnt] + w + 1;
cnt++;
// ํ๊ฐ ๋น์ด์๊ฑฐ๋ ์ ํ๋ฅผ ๋ชป๋ฐ๋ ์ํํธ์ผ๊ฒฝ์ฐ
}else{
// ๊ธฐ์ง๊ตญ ์ค์น
answer++;
// ๊ธฐ์ง๊ตญ์ ์ ์์ผ๋ก w๋งํผ ์ ํ ๋จ
apart = apart + (w*2) + 1;
}
}
return answer;
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ์ซ์ ๊ฒ์ (0) | 2022.02.20 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ๊ฐ์ฅ ํฐ ์ (0) | 2022.02.18 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์ต๋ ์์ ์ค์ผ์ฅด(PriorityQueue ์์ฉ๋ฌธ์ ) (0) | 2022.02.15 |
[JAVA/์ฝ๋ฉํ ์คํธ] ๊ฒฐํผ์ (0) | 2022.02.14 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์จ๋ฆ ์ ์(Greedy Algorithm) (0) | 2022.02.12 |