์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- react-router
- ์ฝ๋ฉํ ์คํธํฉ๊ฒฉ์๋๊ธฐ
- react
- ์ด์ฝํ
- ๋ฆฌ์กํธ
- react-redux
- json-server
- maeil-mail
- ํ๋ก๊ทธ๋๋จธ์ค
- SW
- Get
- Python
- ์๊ณ ๋ฆฌ์ฆ
- createSlice
- ํญํด99
- useDispatch
- sw expert academy
- programmers
- C++
- redux-toolkit
- ๋งค์ผ๋ฉ์ผ
- redux-saga
- JavaScript
- axios
- java
- Algorithm
- redux
- ์๋ฐ
- ํญํดํ๋ฌ์ค
- ํ ์ฝํ ์ฝ
- Today
- Total
Binary Journey
[ํ ์ฝํ ์ฝ1.5 4-02] ๋ฐฐ์ด ํ์ ์ํค๊ธฐ ๋ณธ๋ฌธ
[ํ ์ฝํ ์ฝ1.5 4-02] ๋ฐฐ์ด ํ์ ์ํค๊ธฐ
binaryJournalist 2025. 2. 21. 13:50๐กํ ์ฝํ ์ฝ ์์ฆ 1.5 4ํ ๋ชจ์ off-site ๋ฌธ์ ํ์ด์ ๋๋ค. (2025.02.15)
๋ฌธ์
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค - ๋ฐฐ์ด ํ์ ์ํค๊ธฐ
๋ด์ฉ
์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers
์ ๋ฌธ์์ด direction
๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด numbers
์ ์์๋ฅผ direction
๋ฐฉํฅ์ผ๋ก ํ ์นธ์ฉ ํ์ ์ํจ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๊ธฐ๋กํ๊ธฐ
๐ก ์ด๋๊น์ง ์๊ฐํด๋ดค๋์ง ๋จ๊ณ์ ์ผ๋ก ๊ธฐ๋กํด๋ด ๋๋ค.
์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๋ ค ํ๋์?
์ํ ํ๋ฅผ ์ฌ์ฉํ์๋ค.
์ ์ฉ ๊ทผ๊ฑฐ๋ ๋ฌด์์ธ๊ฐ์?
๋ฌธ์ ์ค๋ช ์์ ์ผ์ชฝ, ํน์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์ ํ๋ค๋ ๋ง์ ๋ณด๊ณ ์ํ ํ๊ฐ ์ ํฉํ๋ค๊ณ ํ๋จํ์๋ค.
๋ฌธ์ ํ์ด ๊ณผ์ ์์ ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ป๊ฒ ์ฝ๋๋ก ๊ตฌํํ๋ ค ํ๋์?
๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฌ์ฉํ๋ค.
ํ์ด
ํ์ด ์๊ฐ
์์ ์๊ฐ | ์ข ๋ฃ ์๊ฐ | ์ด ์์ ์๊ฐ |
---|---|---|
20๋ถ |
๋ฌธ์ ๋ถ์
์ ์ฝ ์ฌํญ ํ์ & ํ ์คํธ ์ผ์ด์ค ์์ฑ
์ ํ์ฌํญ
- 3 ≤
numbers
์ ๊ธธ์ด ≤ 20 direction
์ "left" ์ "right" ๋ ์ค ํ๋์ ๋๋ค.
์ ๋ ฅ๊ฐ ๋ถ์
๐ก ์ ๋ ฅ๊ฐ์ ๋ถ์ํ๋ฉด ๋ฌธ์ ์์ ์๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ ์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
numbers | direction | result |
---|---|---|
[1, 2, 3] | "right" | [3, 1, 2] |
[4, 455, 6, 4, -1, 45, 6] | "left" | [455, 6, 4, -1, 45, 6, 4] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
numbers
๊ฐ [1, 2, 3]์ด๊ณdirection
์ด "right" ์ด๋ฏ๋ก ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ํ์ ์ํจ [3, 1, 2]๋ฅผ returnํฉ๋๋ค.
์์ฌ ์ฝ๋ ์์ฑ
๐ก ์์ฌ ์ฝ๋๋ ๋์ ์ค์ฌ์ผ๋ก ์์ฑํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๐ก ์์ฌ ์ฝ๋๋ ๋ฌธ์ ํด๊ฒฐ ์์๋ก ์์ฑํฉ๋๋ค.
๐ก ์์ฌ ์ฝ๋๋ฅผ ์ถฉ๋ถํ ํ ์คํธํด๋ด ๋๋ค.
1์ฐจ ํ์ด
solution(int[] numbers, String direction) {
// numbers๋ฅผ ๋ ๋ฒ ๋ฐ๋ณตํ๋ ๋ฐฐ์ด ์์ฑ
// ์์ ์ง์
// - left ์ผ ๊ฒฝ์ฐ 1๋ถํฐ
// - right์ผ ๊ฒฝ์ฐ -1 ๋ถํฐ -> ์ํ ํ์ด๋ฏ๋ก (n-1)
// ์์ ์ง์ ์ผ๋ก๋ถํฐ n๊ฐ๋งํผ ์๋ผ ๋ฐฐ์ด ๋ฆฌํด
}
2์ฐจ ํ์ด
solution(int[] numbers, String direction) {
// ๋ฐฐ์ด ์์ฑ
// ์์ ์ง์
// - left ์ผ ๊ฒฝ์ฐ 1๋ถํฐ
// - right์ผ ๊ฒฝ์ฐ -1 ๋ถํฐ -> ์ํ ํ์ด๋ฏ๋ก (n-1)
// ๋ฐฐ์ด[i] = numbers[(์์ ์ง์ + i) % n]
// ๋ฐฐ์ด ๋ฐํ
}
๊ตฌํ
1์ฐจ ํ์ด
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers, String direction) {
int n = numbers.length;
int[] answer = new int[n * 2];
for (int i = 0; i < n * 2; i++) {
answer[i] = numbers[i % n];
}
return Arrays.copyOfRange(answer, direction.equals("right") ? n - 1 : 1, direction.equals("right") ? 2 * n - 1 : n + 1);
}
}
2์ฐจ ํ์ด
class Solution {
public int[] solution(int[] numbers, String direction) {
int n = numbers.length;
int[] answer = new int[n];
int point = direction.equals("right") ? n - 1 : 1;
for (int i = 0; i < n; i++) {
answer[i] = numbers[(point + i) % n];
}
return answer;
}
}
๋ณต๊ธฐํ๊ธฐ
๋ต์๊ณผ ๋์ ํ์ด๋ฅผ ๋น๊ตํด๋ณด์ธ์
์ถ์ฒ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ํ์ด
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] numbers, String direction) {
List<Integer> list = Arrays.stream(numbers).boxed().collect(Collectors.toList());
if (direction.equals("right")) {
list.add(0, list.get(list.size() - 1));
list.remove(list.size() - 1);
} else {
list.add(list.size(), list.get(0));
list.remove(0);
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
- ์ ๊ณต๋๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํ์ฉํ๋ ๊ฒ๋ ์ข๋ค.
'Algorithm > ํ ์ฝํ ์ฝ1.5(2025)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ ์ฝํ ์ฝ1.5 4-05] ์ง๋ฃ ์์ ์ ํ๊ธฐ (0) | 2025.02.21 |
---|---|
[ํ ์ฝํ ์ฝ1.5 4-03] ๋ฌธ์์ด ๋ฐ๊ธฐ (0) | 2025.02.21 |
[ํ ์ฝํ ์ฝ1.5 4-01] ๊ณต ๋์ง๊ธฐ (0) | 2025.02.21 |
[ํ ์ฝํ ์ฝ1.5 2-04] ๊ณผ์ ๋ ๋๋์ง ์์! (0) | 2025.02.21 |
[ํ ์ฝํ ์ฝ1.5 2-05] ๋ง๋๊ธฐ (0) | 2025.02.21 |