문제
https://school.programmers.co.kr/learn/courses/30/lessons/120844
풀이
회전이라고는 했지만 결국 direction이 "right"이면 오른쪽으로 한칸 이동, "left"이면 왼쪽으로 한칸 이동인 셈이다.
1) if 조건문을 사용해서 right인지 left인지 조건을 주었다. (내용이 일치하는지 확인하는 것이기 때문에 ==이 아니라 equals() 메소드를 사용했다.)
2) direction 이 right 일때는 먼저 for문을 이용해서 답을 넣어줄 배열인 answer에 numbers[i+1] 의 값들을 차곡차곡 넣어주었다. 그러면 answer의 마지막 자리가 남게되는데 이 부분을 비워두게되면 오류가 난다. 정적 배열이라. 그래서 꼭 마지막 배열은 for문을 나와서 numbers[0]의 숫자를 넣었다.
3) direction이 left일때는 먼저 answer[0]의 값에 numbers의 마지막 자리 숫자를 넣어주었다. 그리고 for문을 사용해서 answer[1] 부터 값이 들어갈 수 있도록 초기시작을 int i=1; 이라고 해주었고, answer[i]에 numbers[i-1]의 숫자들이 들어가도록 만들었다.
코드
class Solution {
public int[] solution(int[] numbers, String direction) {
int[] answer = new int[numbers.length];
if(direction.equals("left")){
for(int i=0; i<numbers.length-1; i++){
answer[i] = numbers[i+1];
}
answer[numbers.length-1] = numbers[0];
} else if(direction.equals("right")){
answer[0] = numbers[numbers.length-1];
for(int i=1; i<numbers.length; i++){
answer[i] = numbers[i-1];
}
}
return answer;
}
}
'하루하루 > 프로그래머스 문제풀이' 카테고리의 다른 글
[Lv.0 - Java] 120834. 외계행성의 나이 (0) | 2023.12.13 |
---|---|
[Lv.0 - Java] 120815. 피자 나눠 먹기 (2) (0) | 2023.12.12 |
[Lv.0 - Java] 120850. 문자열 정렬하기 (1) (1) | 2023.12.09 |
[Lv.0 - Java] 120851. 숨어있는 숫자의 덧셈 (1) (1) | 2023.12.07 |
[Lv.0 - Java] 120845. 주사위의 개수 (1) | 2023.12.07 |