프로그래머스 Lv 0 배열 회전시키기

Heeeoh·2023년 1월 8일
0

프로그래머스

목록 보기
1/26
post-thumbnail

🔍문제 분석

✔️ 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120844

📖 문제


매개변수 direction에 따라 왼쪽 , 오른쪽으로 배열순서가 밀린다.

🔅 문제풀이

내가 푼 방식

  • switch 문 : direction에 맞게 로직 실행
  • for문 사용
    - right : i+1번째에 i번 초기화 하는 식
class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = new int[numbers.length];
        switch(direction) {
            case "right" : 
                for(int i = 0; i < numbers.length; i++) {
                    if(i+1 == numbers.length) {
                          answer[0] = numbers[i];      
                        
                    }else{
                          answer[i+1] = numbers[i];
                    }
                    
                }
                break;
            case "left" :
                for(int i = 0; i < numbers.length; i++) {
                    if(i+1 == numbers.length) {
                    
                        answer[i] = numbers[0];
                    
                    }else{
                        answer[i] = numbers[i+1];
                    }
                    
                }
                break;
        }
        return answer;
    }
}

❗ 오답노트 / 필요한 지식

  1. switch문을 사용하면서 break;을 사용하지 않아 계속 틀렸다. 명심할 것
  2. 풀긴 했지만 너무 원시적으로 풀었다랄까 맘에 안든다.
  3. 푸는 방식이 너무 한정적이다. collection 공부가 필요

  1. List를 잘 활용해 보자
    ArrayList.add(int index, E e)
    - 사용시 원래 index안의 값이 사라지지 않고뒤로 밀린다.
    remove(int index)
    사용시 해당 인덱스안의 값을 삭제하고 배열을 앞칸으로 땡김
Ex)
ㅁ ㅁ ㅁ 
0  1  2
1삭제
ㅁ ㅁ
0  1
profile
열심히 살자

0개의 댓글