| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 프로그래머스 #푸드 파이트 대회 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #조건에 맞는 사용자와 총 거래금액 조회하기 #알고리즘 #Mysql #DB #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #부분 문자열 이어 붙여 문자열 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 파이썬 #input() #sys.stdin.readline() #공부 #study
- 프로그래머스 #수열과 구간 쿼리1 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #카테고리 별 도서 판매량 집계하기 #알고리즘 #쿼리문 #MySQL #코린이 #개발자 #study #취준
- 프로그래머스 #날짜 비교하기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #배열만들기 5 #알고리즘 #study #Java #코린이 #개발자 #성장 #공부
- 프로그래머스 #문자열 뒤집기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 백준 #
- 프로그래머스 #등차수열의 특정한 항만 더하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부
- 코린이 #개발자 #study
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #중복된 문자 제거 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #1로 만들기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건에 맞게 수열 변환하기 1 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #할 일 목록 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #오랜 기간 보호한 동물(1) #알고리즘 #MySQL #DB #쿼리문 #개발자 #study #성장 #코린이
- 프로그래머스 #세로 읽기 #알고리즘 #개발자 #코린이 #study #성장 #Java #자바
- 프로그래머스 #소수 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #문자열이 몇 번 등장하는지 세기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #간단한 식 계산하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #합성수 찾기 #알고리즘 #Java #자바 #stiudy #코린이 #개발자 #공부 #성장
- 프로그래머스 #길이에 따른 연산 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #수열과 구간 쿼리 3 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #열의 길이를 2의 거듭제곱으로 만들기 #Java #자바 #알고리즘 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #배열 회전시키기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #2차원으로 만들기 #알고리즘 #Java #자바 #study #코린이 #개발자 #공부 #성장
- 프로그래머스 #있었는데요 없었습니다 #DB #MySQL #알고리즘 #쿼리문 #코린이 #개발자 #study #공부 #성장
- Today
- Total
luke
[프로그래머스] - 배열 회전시키기 (Java/자바) 본문
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120844
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제.

풀이.
class Solution {
public int[] solution(int[] numbers, String direction) {
int[] answer = new int[numbers.length];
if(direction.equals("right")){
answer[0] = numbers[numbers.length - 1];
for(int i = 1; i < answer.length; i++){
answer[i] = numbers[i-1];
}
}else{
answer[numbers.length - 1] = numbers[0];
for(int i = 0; i < answer.length - 1; i++){
answer[i] = numbers[i+1];
}
}
return answer;
}
}
이번 문제는 프로그래머스 "배열 회전시키기" 문제다.
문제 접근은 direction이 "rigth"라면 numbers[] 값을 오른쪽으로 하나씩 이동시키고 "left"값이 라면 왼쪽으로 하나씩 이동시키는 문제다. 그럼 바로 풀이해보겠다.
1. answer[]의 길이는 작업할 때 이동만 하기에 numbers[]의 길이로 지정해준다.
2. 조건식을 사용해 equals()로 "right" 값이라면 오른쪽으로 그렇지 않으면 "left"인 왼쪽으로 이동하게끔 조건식을 만들어준다.
3. 이제 right일 때를 작성해보자 오른쪽으로 한 칸씩 이동시키기 전에 answer[0] 번째 인덱스에는 numbers[]의 마지막 인덱스 값이 들어간다는 규칙을 발견할 수 있다. 그래서 answer[0]은 변하지 않기에 먼저 지정해준다.
4. for문을 사용하고 1부터 시작한다 이유는 3번째 설명에 0번을 지정해줬기 때문이다. 그리고 answer[i]번째의 값들은 numbers[]의 i+1을 해주면 된다. 그러면 answer[1]번 인덱스는 numbers[1-1](0번) 값이 answer[1]번에 알맞게 잘 들어가는 걸 확인할 수 있다.
5. 이제 left 왼쪽 이동을 보면 또 규칙이 있는데 answer []의 마지막 인덱스는 항상 numbers [0] 번째 인덱스 값이 들어온다는 거다 그러므로 위에 고정으로 값을 지정해준 것처럼 해준다.
6. 마지막으로 for문을 사용하는데 0번 인덱스부터 시작하니 위에 마지막 인덱스 값을 제외하고 실행시켜야 한다. 그러므로 answer[]의 길이에서 - 1을 해준 만큼 돌려준다. 그리고 answer[i] 번째 인덱스는 numbesr[i+1] 로 해주면 왼쪽으로 한 칸씩 이동하는 걸 확인할 수 있다.
'알고리즘문제 > 프로그래머스(Java)' 카테고리의 다른 글
| [프로그래머스] - 등차수열의 특정한 항만 더하기 (Java/자바) (0) | 2025.12.21 |
|---|---|
| [프로그래머스] - 세로 읽기 (Java/자바) (0) | 2025.12.14 |
| [프로그래머스] - 푸드 파이트 대회 (Java/자바) (0) | 2025.12.01 |
| [프로그래머스] - 부분 문자열 이어 붙여 문자열 만들기 (Java/자바) (0) | 2025.12.01 |
| [프로그래머스] - 소수 만들기 (Java/자바) (0) | 2025.11.30 |