썬키의 개발노트
[JAVA-120844] 배열 회전시키기 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
링크를 클릭하면 해당 문제로 이동합니다.
1. 접근하기
우선, 순서가 바뀐 원소들을 담을 새로운 배열을 생성하고 문자열 direction이 left일 때는 배열 numbers의 0번째 인덱스에 해당하는 원소는 맨 끝으로 이동하고, direction이 right일 때는 배열 numbers의 마지막 인덱스는 맨 앞으로 이동하는점을 염두에 두고 나머지 원소들을 이동시키면 되겠다고 생각했다.
TO-DO |
1) 순서가 바뀐 원소들을 담을 새로운 배열을 생성하기 |
2) 문자열에 따라 로직을 달리 실행해야 하므로 for-if문 작성하기 |
2. 코드
class Solution {
public int[] solution(int[] numbers, String direction) {
int[] answer = new int[numbers.length];
// ArrayIndexOufOfBounds 예외를 막기 위해 조건식은 배열-1로 지정
for (int i = 0; i < numbers.length - 1; i++) {
if (direction.equals("right")) {
answer[0] = numbers[numbers.length - 1];
answer[i + 1] = numbers[i];
} else if (direction.equals("left")) {
answer[numbers.length - 1] = numbers[0];
answer[i] = numbers[i + 1];
}
}
return answer;
}
}
3. 결과
4. 리뷰
다른 사람들의 풀이를 보니까 다 비슷비슷하게 푼 거 같았다.
냅다 문제 풀기 전에 어떻게 코드를 짜야할지 노트에 적어보는 습관은 참 좋은거 같다.
이번 문제도 한 2-30분 정도 손코딩을 해보고 나온 결과이다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[JAVA-120890] 가까운 수 (0) | 2023.01.19 |
---|---|
[JAVA-120846] 합성수 찾기 (0) | 2023.01.18 |
[JAVA-120815] 피자 나눠 먹기(2) (0) | 2023.01.18 |
[JAVA-120893] 대문자와 소문자 (0) | 2023.01.17 |
[JAVA-120849] 모음 제거 (0) | 2023.01.17 |