๊ด€๋ฆฌ ๋ฉ”๋‰ด

Binary Journey

[ํ…Œ์ฝ”ํ…Œ์ฝ”1.5 4-02] ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ ๋ณธ๋ฌธ

Algorithm/ํ…Œ์ฝ”ํ…Œ์ฝ”1.5(2025)

[ํ…Œ์ฝ”ํ…Œ์ฝ”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();
    }
}
  • ์ œ๊ณต๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹๋‹ค.
๋ฐ˜์‘ํ˜•