๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42862
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์
์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์
์ ๋ค์ด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒด์ก์์
์ ๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- ์ ์ฒด ํ์์ ์๋ 2๋ช ์ด์ 30๋ช ์ดํ์ ๋๋ค.
- ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ง ๋ค๋ฅธ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ์ ์์ต๋๋ค. ์ด๋ ์ด ํ์์ ์ฒด์ก๋ณต์ ํ๋๋ง ๋๋๋นํ๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๋จ์ ์ฒด์ฑใฑ๋ณต์ด ํ๋์ด๊ธฐ์ ๋ค๋ฅธ ํ์์๊ฒ๋ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
n | lost | reserve | return |
5 | [2, 4] | [1, 3, 5] | 5 |
5 | [2, 4] | [3] | 4 |
3 | [3] | [1] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 1๋ฒ ํ์์ด 2๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๊ณ , 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์ด 4๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ฉด ํ์ 5๋ช ์ด ์ฒด์ก์์ ์ ๋ค์ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 3๋ฒ ํ์์ด 2๋ฒ ํ์์ด๋ 4๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ฉด ํ์ 4๋ช ์ด ์ฒด์ก์์ ์ ๋ค์ ์ ์์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
// ์ด๊ธฐ answer์ ์ฒด์ก๋ณต์ ๋๋๋นํ์ง ์์ ํ์ ์๋ฅผ ๊ตฌํ๋ค.
int answer = n - lost.length;
// reserve ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค.
Arrays.sort(reserve);
// lost ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค.
Arrays.sort(lost);
// ๋ฐ๋ณต๋ฌธ์ ํตํด ์ฌ๋ฒ์ ์ท์ ๊ฐ์ ธ์์ง๋ง ๋๋๋นํ ํ์ ์๋ฅผ ๊ณ์ฐํ๋ค.
for (int i = 0; i < lost.length; i++) {
for (int j = 0; j < reserve.length; j++) {
if (lost[i] == reserve[j]) {
answer++;
lost[i] = -1;
reserve[j] = -1;
break;
}
}
}
// ๋ฐ๋ณต๋ฌธ์ ํตํด ๋๋๋นํ์ง๋ง ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๋น๋ฆด ์ ์๋ ํ์ ์๋ฅผ ๊ณ์ฐํ๋ค.
for (int i = 0; i < lost.length; i++) {
for (int j = 0; j < reserve.length; j++) {
if (lost[i] - 1 == reserve[j] || lost[i] + 1 == reserve[j]) {
answer++;
reserve[j] = -1;
break;
}
}
}
return answer;
}
}
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์ซ์ ์ง๊ฟ (1) | 2025.01.23 |
---|---|
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์น์์ด (2) (1) | 2025.01.21 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (1) | 2025.01.20 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ง์น ํ๊ธฐ (1) | 2025.01.17 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์์ ๋ง๋ค๊ธฐ (1) | 2025.01.16 |