> ๋ฌธ์ ์ค๋ช ๋ณด๊ธฐ
๋ฌธ์ ์ค๋ช
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์ ์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์ ์ ๋ค์ด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒด์ก์์ ์ ๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ- ์ ์ฒด ํ์์ ์๋ 2๋ช ์ด์ 30๋ช ์ดํ์ ๋๋ค.
- ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ง ๋ค๋ฅธ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ์ ์์ต๋๋ค. ์ด๋ ์ด ํ์์ ์ฒด์ก๋ณต์ ํ๋๋ง ๋๋๋นํ๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๋จ์ ์ฒด์ก๋ณต์ด ํ๋์ด๊ธฐ์ ๋ค๋ฅธ ํ์์๊ฒ๋ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
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๋ช
์ด ์ฒด์ก์์
์ ๋ค์ ์ ์์ต๋๋ค.
๐ฅ [๋ก์ง]
1. ๋ฐฐ์ด๋ค ์์ฐจ์ ๋ ฌ
2. ์ฌ๋ฒ์ ๊ฐ์ ธ์จ ์ฌ๋์ด ์ฒด์ก๋ณต์ ๋๋๋นํ ๊ฒฝ์ฐ๋ฅผ ๋จผ์ ๊ณ ๋ ค
(์ฒด์ก๋ณต์ ๋น๋ ค ์ค ์ ์๋ ์ํฉ์ด๊ธฐ ๋๋ฌธ์ ๊ณ ๋ ค๋์์ด ์๋๋ฏ๋ก ๋ฐฐ์ด์์ ์ ๊ฑฐํด์ค์ผํ๊ธฐ ๋๋ฌธ)
(1) ์ฒด์ก๋ณต์ ๋น๋ ค ์ค ์ ์๊ธฐ ๋๋ฌธ์ reserve๊ฐ์ 0์ผ๋ก ๋ง๋ค์ด์ค๋ค. (2) ๋ณธ์ธ์ ์ฌ๋ฒ ์ฒด์ก๋ณต์ ์ ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ lost๊ฐ๋ 0์ผ๋ก ๋ง๋ค์ด์ค๋ค. (3) ์์ด๋ฒ๋ ธ์ง๋ง ํด๊ฒฐ์ฑ ์ ์ฐพ์๊ธฐ ๋๋ฌธ์ answer๊ฐ ๋ํ ์ฆ๊ฐ |
3. ๊ทธ ์ธ์ ๊ฒฝ์ฐ(์ฌ๋ฒ์ ๊ฐ์ ธ์ค์ง ์์๋๋ฐ ๋๋๋นํ ๊ฒฝ์ฐ ์ฒดํฌ)
์ฌ๋ฒ์ ๊ฐ์ ธ์จ ์ฌ๋์ด ๋๋๋นํ๋์ง ์ฒดํฌ(reserve๊ฐ์ด 0์ธ ์ฌ๋), ์ฌ๋ฒ์ด ์๋ ํ์์ ๋ฒํธ๊ฐ 1์ด ์ฐจ์ด๋๋์ง ์ฒดํฌ
if((reserve[i] != 0) && ((num == reserve[i]-1) || (num == reserve[i]+1)))
์ด ์กฐ๊ฑด์ ์ถฉ์กฑํ ๊ฒฝ์ฐ ๋์ด์ ๋น๋ ค์ค ํ์์ด ๋น๋ ค์ค ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ 0์ผ๋ก ๋ง๋ค์ด์ค๋ค. answer๊ฐ ๋ํ 1 ์ฆ๊ฐ!
๐ฅ [์ต์ข ์ฝ๋]
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
Arrays.sort(lost);
Arrays.sort(reserve);
int answer = n - lost.length;
for(int j = 0; j < lost.length; j++) {
for(int i = 0; i < reserve.length; i++) {
if(lost[j] == reserve[i]) { //์ฌ๋ฒ์ ๊ฐ์ ธ์จ ์ฌ๋์ด ์ฒด์ก๋ณต์ ๋๋๋นํ ๊ฒฝ์ฐ
reserve[i] = 0;
lost[j] = 0;
answer++;
break;
}
}
}
for(int num : lost) {
if(num == 0) continue;
for(int i = 0; i < reserve.length; i++) {
if((reserve[i] != 0) && ((num == reserve[i]-1) || (num == reserve[i]+1))){
reserve[i] = 0;
answer++;
break;
}
}
}
return answer;
}
}
๐ฅ [์๊ฐ]
์ ๋ง์ ๋ง.. ์ค๋๊ฑธ๋ ธ๋ค. ์ฒ์์ ํ ์คํธ์ผ์ด์ค 12,13,18์์ ์๋ฌ๊ฐ ๋ฌ๋๋ฐ ์ด๊ฑด ์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ง ํ์์ด ๋๋๋ง์ ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํ์ง ๋ชปํด์ ๋ฌธ์ ๊ฐ ๋๊ฑฐ๋ผ ๊ณ ์น๋๋ฐ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์๋๋ฐ ๊ทธ ๋ค์์ 5,12 ํ ์คํธ์ผ์ด์ค๊ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ถ๋ช ํ ์ฌ๋ฒ ์ฒด์ก๋ณต๋ ๊ณ ๋ คํ๊ณ .. ๋ด๊ฐ ๋ก์ง์ ๋ฐ๋ผ๊ฐ์๋ ๋ถ๋ช ํ ์ด ์์ด๋ณด์ด๋๋ฐ ์์ธ ์ผ์ด์ค๊ฐ ๋ญ์ง ๋ชฐ๋ผ์ ํ์ฐธ์ ํค๋งธ๋ค.ใ ใ
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฌ๋ ค๋์ ์ง๋ฌธํ๊ธฐ๋ฅผ ํ์ฐธ ๋ณด๋ ์ค 4, [3,1,2] [2,4,3] -> 3 ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํด๋ณด๋ผ๋ ์กฐ์ธ์ ๋ดค๋ค. ์ฒดํฌํฌ์ธํธ๋ฅผ ์ฐ์ด๋ณด๋ฉด์ ํ์ธํ๋ค๊ฐ ๊ทธ์ ์์ผ ์์ธ์ ์ฐพ๊ฒ ๋์๋น
> ๋ฌธ์ ๊ฐ ๋์๋ ๊ธฐ์กด ์ฝ๋
//๋ฌธ์ ๊ฐ ๋์๋ ์ฝ๋์
๋๋ค. ์ ๋ต ์๋!
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
Arrays.sort(lost);
Arrays.sort(reserve);
int answer = n - lost.length;
for(int num : lost) {
for(int i = 0; i < reserve.length; i++) {
if(num == reserve[i]) { //์ฌ๋ฒ์ ๊ฐ์ ธ์จ ์ฌ๋์ด ์ฒด์ก๋ณต์ ๋๋๋นํ ๊ฒฝ์ฐ
reserve[i] = 0;
answer++;
System.out.println(i+"๊ฐ ๋๋๋นํด์ answer ์ฆ๊ฐ");
break;
}
if((reserve[i] != 0) && ((num == reserve[i]-1) || (num == reserve[i]+1))){
System.out.println(reserve[i]+"๊ฐ "+num+"ํํ
๋น๋ ค์ค");
reserve[i] = 0;
answer++;
break;
}
}
}
return answer;
}
}
์ด ๊ฐ๋ค์ ๊ฐ๊ฐ ์ ๋ ฌํ๋ฉด lost = [1,2,3] , reserve = [2,3,4]๊ฐ ๋๋๋ฐ ๊ธฐ์กด์ ์ฝ๋์์๋ ์ ๋ ฌ๋ lost๋ฐฐ์ด, reserve ๋ฐฐ์ด์ ์์๋๋ก ๋๋ฉด์ 1. ์ฌ๋ฒ์ ๊ฐ์ง ํ์์ด ๋๋ ๋ง์ ๊ฒฝ์ฐ 2. ์๋ ๊ฒฝ์ฐ ๋น๋ฆด ์ ์๋์ง์ ์ฌ๋ถ๋ฅผ ํ๋ฒ์ ์ฒดํฌํด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ํด๋น ์ผ์ด์ค์์ 2๋ฒ ํ์์ด ๋ณธ์ธ์ด ๋๋๋ง์์์๋ 1์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ์ฐธ์ฌ๊ฐ ๋ฐ์ํ๋ค. (๊ฒฐ๊ตญ ์ฌ๋ฒ์ ๊ณ ๋ คํ์ง ์ํ ์ฝ๋๊ฐ ๋์ด๋ฒ๋ฆผ ใ ใ )

(์ด๋ ๊ฒ ๋๋ฉด ์๋จ.)
๋ฌธ์ ๋ฅผ ๊ผผ๊ผผํ ์ฝ๊ณ ์ฐ์ ์์๋ฅผ ํ์ ํ๋ ๊ฒ ์๊ฐ๋จ์ถ์ ํต์ฌ์ธ ๊ฒ ๊ฐ๋ค!
์ฝํ ์ค๋น๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ์ง ์ผ๋ง ๋์ง ์์ ์ฝ๋์ ๋ฏธํกํ ์ ์ด ๋ง์ ์ ์์ต๋๋ค.
๋ถ์กฑํ ์ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ์์ผ๋ก์ ํฌ์คํ ์ ๋ฐ์ํ๊ฒ ์ต๋๋ค! ๋ด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค :)
-zelkova