Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- BottomNavigation
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- kotlin
- viewpager2
- Coding-Test
- ์๋ฐ ์ฝ๋ฉํ ์คํธ
- ์ฝํ๋ฆฐ
- javaCoding
- ํ๋ฉด ํฌ๊ธฐ ๊ตฌํ๊ธฐ
- ์ฝ๋ฉํ ์คํธ
- baekjoon
- ์ค๋ธ์
- ์๋ฐ
- JavaCodingTest
- ์ฝํ
- ScreenSize
- ์๋๋ก์ด๋
- Java
- CodingTestJava
- ModelViewPresenter
- Android
- ๋ฐฑ์ค
- programmers
- ์ฝ๋ฉํ ์คํธ JAVA
- pattern
- ์ฐํ ํ๊ธ๋ฐ
- CodingTest
- ์ฝ๋ฉํ ์คํธ ์๋ฐ
- ๋ทฐ๋ฐ์ธ๋ฉ
- ์ฝํ ์๋ฐ
Archives
- Today
- Total
KDLiam
[Programmers ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋ : Java] ๋ง์ง๋ง ๋ ์์ ๋ณธ๋ฌธ
Problems(Java)/Programmers
[Programmers ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋ : Java] ๋ง์ง๋ง ๋ ์์
KDLiam 2025. 10. 13. 11:13๐ ๋ฌธ์ ๋งํฌ
ํ๋ก๊ทธ๋๋จธ์ค 181927 - ๋ง์ง๋ง ๋ ์์
๐ก ๋ฌธ์ ์์ฝ
์ ์ ๋ฐฐ์ด num_list๊ฐ ์ฃผ์ด์ง๋๋ค.
- ๋ง์ง๋ง ์์(num_list[-1])๊ฐ ๊ทธ ์ด์ ์์(num_list[-2])๋ณด๋ค ํฌ๋ฉด
→ ๋ง์ง๋ง ์์์ ๋ ์์์ ์ฐจ๋ฅผ ์ถ๊ฐ - ๊ทธ๋ ์ง ์์ผ๋ฉด
→ ๋ง์ง๋ง ์์์ 2๋ฅผ ๊ณฑํ ๊ฐ์ ์ถ๊ฐ - ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
์์
num_list = [2, 1, 6]
๋ง์ง๋ง ๋ ์: 1, 6 → 6 > 1 → ์ฐจ์ด 5
๊ฒฐ๊ณผ = [2, 1, 6, 5]
๐งฉ ๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public int[] solution(int[] num_list) {
int numListLen = num_list.length;
int[] answer = new int[numListLen+1];
for(int i=0;i<numListLen;i++) {
answer[i] = num_list[i];
}
if(num_list[numListLen-1] > num_list[numListLen-2]) {
answer[numListLen] = num_list[numListLen-1] - num_list[numListLen-2];
} else {
answer[numListLen] = num_list[numListLen-1] * 2;
}
return answer;
}
}
๐ง ๋ถ์
- ๋ฐฐ์ด์ ์๋ก ๋ง๋ค๊ณ , ์ง์ for๋ฌธ์ผ๋ก ๊ธฐ์กด ๋ฐฐ์ด์ ๊ฐ์ ๋ณต์ฌ
- ์๋์ ํ์ง๋ง ์ฝ๋๊ฐ ์ฅํฉํจ
- ์๋ฐ์์๋ ์ด๋ฐ ๋จ์ ๋ณต์ฌ๋ฅผ Arrays.copyOf()๋ก ํ ์ค์ ์ฒ๋ฆฌํ ์ ์์
โ ๊ฐ์ ํ ์ฝ๋
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
int numListLen = num_list.length;
int[] answer = Arrays.copyOf(num_list, numListLen+1);
if(num_list[numListLen-1] > num_list[numListLen-2]) {
answer[numListLen] = num_list[numListLen-1] - num_list[numListLen-2];
} else {
answer[numListLen] = num_list[numListLen-1] * 2;
}
return answer;
}
}
โก ๊ฐ์ ํฌ์ธํธ
ํญ๋ชฉ๊ธฐ์กด ์ฝ๋๊ฐ์ ์ฝ๋
| ๋ฐฐ์ด ๋ณต์ฌ | ์ง์ for๋ฌธ ์์ฑ | Arrays.copyOf() ํ ์ค |
| ๊ฐ๋ ์ฑ | ๋ฎ์ | ๋งค์ฐ ๋์ |
| ์ฑ๋ฅ | ๊ฑฐ์ ๋์ผ (O(n)) | ๋์ผ (๋ด๋ถ์ ์ผ๋ก System.arraycopy ์ฌ์ฉ) |
| ์ฝ๋ ๊ธธ์ด | ๊ธธ๊ณ ๋ฐ๋ณต์ | ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ |
๐ง ํต์ฌ ๋ฐฐ์ ํฌ์ธํธ
- Arrays.copyOf(original, newLength)๋
→ ๊ธฐ์กด ๋ฐฐ์ด์ ์ ๊ธธ์ด๋ก ๋ณต์ฌํ๋ฉด์ ์ ๋ฐฐ์ด ๋ฐํ - ๋ด๋ถ์ ์ผ๋ก System.arraycopy()๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋น ๋ฅด๊ณ ์์
- ๋ฐฐ์ด์ ์ ์์๋ฅผ ์ถ๊ฐํ ๋ ์์ฃผ ์ฐ์ด๋ ํ์ค์ ๋ฐฉ๋ฒ
โ๏ธ ํ์ค ์์ฝ
“์ง์ ๋ณต์ฌ๋ณด๋ค๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทน ํ์ฉํ์.
Arrays.copyOf()๋ ์ฝ๋ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์๋ฅผ ํฌ๊ฒ ํฅ์์ํจ๋ค.”