์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- leetcode
- ๋ฐ์ดํฐ ์ ์ก
- well known ํฌํธ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ๋ฐ์์ทจ์
- ์์๋ฒํธ
- ํ๋ ์ ๊ตฌ์กฐ
- ์ฐ๋ถํฌdb
- ํ ํฐ ๋ฒ์ค
- ์ค๋ ๋
- ์ค๋ฅ๊ฒ์ถ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- xv6
- ๋น์ฃผ๊ธฐ์ ํธ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํญํด99
- ์ฃผ๊ธฐ์ ํธ
- ํ๋ก์ด๋์์
- 99ํด๋ฝ
- tcp ํ๋กํ ์ฝ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ์ค๋ธ์
- git merge
- mariadb
- reducible
- IEEE 802
- til
- ์ค๋ฅ์ ์ด
- i-type
- tcp ์ธ๊ทธ๋จผํธ
- Today
- Total
Unfazedโ๏ธ๐ฏ
[Java] ํฌํฌ์ธํฐ | ๋ฐฑ์ค 1253 ์ข๋ค ๋ณธ๋ฌธ
https://www.acmicpc.net/problem/1253
์ ๊ทผ ๋ฐฉ๋ฒ
ํฌํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์์ ํฉ์ ๊ตฌํ๊ณ ๊ทธ ํฉ์ด ํ๊ฒ๊ณผ ์ผ์นํ๋์ง๋ฅผ ํ์ธ
์ด๋ฅผ ์ํด ๋ฐฐ์ด์ ์ ๋ ฌ์ด ์ ํ๋์ด์ผ ํจ
Arrays.sort(arr);
int count = 0;
for(int i=0; i<arr.length; i++){
if(isGoodNumber(arr[i], i))
count++;
}
๋ฐฐ์ด ์ ๋ ฌ ์ดํ ํด๋น ํ๊ฒ ๋๋ฒ๊ฐ ๋ฐฐ์ด ๋ด์ ๋์์ ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ์(์ข์ ์)์ธ์ง ํ์ธํ๋ isGoodNumber(int target, int target_idx) ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ์ข์ ์์ผ ๊ฒฝ์ฐ(true) count++ํ์ฌ ์ข์ ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
isGoodNumber ๋ฉ์๋ ๊ตฌํ
๋จ์ํ ๋ฐฐ์ด ๋ด์ ๋ ์๊ฐ ๋ฐฐ์ด ๋ด์ ํ๊ฒ ๊ฐ๊ณผ ์ผ์นํ๋ ์ง๋ง ํ์ธํ๋ค๋ฉด, ๋์์ ํฉ์ด ํ๊ฒ ๊ฐ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ return true, ํ๊ฒ ๊ฐ ๋ณด๋ค ํด ๊ฒฝ์ฐ right ํฌ์ธํฐ 1 ๊ฐ์,ํ๊ฒ ๊ฐ๋ณด๋ค ์์ ๊ฒฝ์ฐ left ํฌ์ธํฐ 1์ฆ๊ฐ์ํค๋ฉฐ ํ์ธํ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ left๋ right ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์์ ํ๊ฒ๊ฐ์ด ์๋ค๋ฉด ํ๊ฒ ๊ฐ์ด ๋ค๋ฅธ ๋ ์์ ํฉ์ผ๋ก ๋ํ๋ด์ผํ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ค.
์ฆ, ํ๊ฒ ๊ฐ์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ฉด ์๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ์ง ์ํด, leftํฌ์ธํฐ์ right ํฌ์ธํฐ๊ฐ ํ๊ฒ ๊ฐ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์ฒดํฌํ๋ค.
๋ง์ฝ left ํฌ์ธํฐ๊ฐ ํ์ผ์ ๊ฐ๋ฆฌํค๊ณ ์์ ๊ฒฝ์ฐ left++ ํ continue, right ํฌ์ธํฐ๊ฐ ํ๊ฒ์ ๊ฐ๋ฆฌํฌ ๊ฒฝ์ฐ right--ํ continue ์ฒ๋ฆฌํ๋ค.
์ด๋ฅผ ํตํด ํ๊ฒ์ ์ ์ธํ ๋์์ ํฉ์ด ํ๊ฒ ๊ฐ๊ณผ ๊ฐ์์ ๋ณด์ฅํ ์ ์๋ค.
private static boolean isGoodNumber(int target, int target_idx){
int left = 0; int right = N-1;
while(left < right){
if(left == target_idx){
left++;
continue;
}
if(right == target_idx){
right--;
continue;
}
int currentSum = arr[left] + arr[right];
if(currentSum == target)
return true;
if(currentSum > target){
right--; continue;
}
left++;
}
return false;
}
์ด ๋ฌธ์ ๊ฐ ๋ฎ์ ์ ๋ต๋ฅ ๊ณผ ์๊ฐ๋ณด๋ค ๋์ ๋์ด๋๋ก ํ๊ฐ๋๋ ์ด์ ๊ฐ ์์ํ ๋ฐ ์์ง ์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋ญ๊ฐ ์ฝ๊ฒ ํ๋ ค ์ข ์ฐ์ฐํด ๋ค๋ฅธ ์ฌ๋๋ค์ ์ง๋ฌธ๋ค์ ์ฐพ์๋ณด๊ณ ๋ด๊ฐ ๊ณ ๋ฏผํ์ง ์์๋ ๋ถ๋ถ์ ์์๋ด์ผ๊ฒ ๋ค.
'๋ฌธ์ ํด๊ฒฐ (PS) > ์ฝํ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ค์ต์คํธ๋ผ, BFS | ๋ฐฑ์ค 2665 ๋ฏธ๋ก๋ง๋ค๊ธฐ (0) | 2024.11.11 |
---|---|
[Java] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ์ ๋ ฌ | ๋ฐฑ์ค 1461 ๋์๊ด (0) | 2024.11.07 |
[Java] ํธ๋ฆฌ, ๊ตฌํ | ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋จ๊ณ ์นซ์ ํ๋งค (0) | 2024.11.06 |
[Java] ๋๋น ์ฐ์ ํ์ BFS| ๋ฐฑ์ค 1240 ๋ ธ๋์ฌ์ด์ ๊ฑฐ๋ฆฌ (0) | 2024.11.04 |
[Java] ํ๋ก์ด๋-์์ , DFS | ๋ฐฑ์ค 2458 ํค ์์ (0) | 2024.11.03 |