프로그래머스 코딩테스트 연습 입문단계 '배열 뒤집기' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120821
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓문제 설명
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
문제가 이해가 잘 되지 않는다면 아래에 입출력 예시표를 참고하세요!
⚠️ 제한사항 및 입출력 예
- 1 ≤ num_list의 길이 ≤ 1,000
- 0 ≤ num_list의 원소 ≤ 1,000
num_list (입력) | result (출력) |
[1, 2, 3, 4, 5] | [5, 4, 3, 2, 1] |
[1, 1, 1, 1, 1, 2] | [2, 1, 1, 1, 1, 1] |
[1, 0, 1, 1, 1, 3, 5] | [5, 3, 1, 1, 1, 0, 1] |
✏️ 직접 구현한 코드
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
for(int i = 0, j = num_list.length - 1; i < num_list.length; i++, j--) {
answer[i] = num_list[j];
}
return answer;
}
}
🗣️ 코드 설명
- 먼저 answer배열을 매개변수 num_list배열의 크기로 생성을 했습니다.
- num_list배열의 크기 만큼 반복하는 for문안에서, i는 0부터 num_list배열의 크기 -1 까지 증가하고, j는 num_list배열의 크기 -1부터 하나씩 줄어들어 0까지 감소한다. 그렇게 i와 j를 이용해서, answer배열에 num_list배열의 값을 거꾸로 뒤집을 수 있게 됩니다.
🔥다른 사람의 코드
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
int p = 0;
for (int i = num_list.length - 1; i >= 0; i--) {
answer[p++] = num_list[i];
}
return answer;
}
}
저는 반복문에 i와 j를 만들어서 문제를 해결했는데 이 사람은 p를 그냥 반복문 밖에 선언, 초기화 해두고 반복문 안에서는 증감연산자(++)를 이용해서 풀었네요. 제 코드보다 조금 더 간결하고 깔끔한 것 같습니다.
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 피자 나눠 먹기 (1) (2) | 2023.02.15 |
---|---|
[JAVA] 프로그래머스 - 배열의 유사도 (0) | 2023.02.15 |
[JAVA] 프로그래머스 - 양꼬치 (0) | 2023.02.14 |
[JAVA] 프로그래머스 - 배열의 평균값 (0) | 2023.02.14 |
[JAVA] 프로그래머스 - 중복된 숫자 개수 (0) | 2023.02.10 |