728x90
문제 지문 #8
자연수가 들어있는 배열이 주어질 때, 다음 규칙에 따라 새로운 배열을 만들려고 합니다.
- 주어진 배열의 첫 번째 원소를 새로운 배열의 첫 번째 원소에 넣습니다.
- 주어진 배열의 마지막 원소를 새로운 배열의 두 번째 원소에 넣습니다.
- 계속해서 주어진 배열의 남아있는 원소중 가장 앞에 있는 원소와 가장 뒤에 있는 원소를 번갈아 가져와 새로운 배열에 순서대로 넣습니다.
- 주어진 배열에 더이상 원소가 남아있지 않을 때까지 위 과정을 반복합니다.
자연수가 들어있는 배열 arr가 매개변수로 주어질 때, 위 과정을 수행해서 만든 새로운 배열을 return 하도록 solution 메서드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
자연수가 들어있는 배열 arr가 solution 메소드의 매개변수로 주어집니다.
- arr의 길이는 1 이상 1,000 이하입니다.
- arr의 원소는 1 이상 10,000 이하의 자연수입니다.
return 값 설명
문제에 주어진 과정을 수행해서 만든 새로운 배열을 return 해주세요.
예시
arr | return |
[1, 2, 3, 4, 5, 6] | [1, 6, 2, 5, 3, 4] |
예시 설명
처음에 주어진 배열은 [1, 2, 3, 4, 5, 6]입니다. 주어진 규칙에 맞게 새로운 배열을 만드는 과정은 다음과 같습니다.
처음 배열 arr | 새로운 배열 |
---|---|
[1, 2, 3, 4, 5, 6] | [ ] |
[2, 3, 4, 5, 6] | [1] |
[2, 3, 4, 5] | [1, 6] |
[3, 4, 5] | [1, 6, 2] |
[3, 4] | [1, 6, 2, 5] |
[4] | [1, 6, 2, 5, 3] |
[ ] | [1, 6, 2, 5, 3, 4] |
혼자 풀이
틀린 곳을 찾아 한줄을 고치는 문제입니다. 몇 번 풀어보다 보니 어디가 틀렸을지 슬슬 감이 옵니다.
주로 if문의 조건이 잘못 들어가 있는 경우가 많습니다. 어렵지 않게 고쳤습니다.
배열을 퐁당퐁당 접근할때 % 연산자를 이용하는 부분을 잘 익혀 두면 좋겠습니다.
/******************************************************
2차 8번 배열의 원소를 재배치 하기
*****************************************************/
import java.util.Arrays;
class MySolution {
public int[] solution(int[] arr) {
int left = 0, right = arr.length - 1;
int idx = 0;
int[] answer = new int[arr.length];
while(left <= right){
// if(left % 2 == 0){ //틀린 부분
if(idx % 2 == 0){ //수정한 부분
answer[idx] = arr[left];
left += 1;
}
else{
answer[idx] = arr[right];
right -= 1;
}
idx += 1;
}
return answer;
}
// 아래는 테스트케이스 출력을 해보기 위한 main 메소드입니다. main 메소드는 잘못된 부분이 없으니, solution 메소드만 수정하세요.
public static void main(String[] args) {
MySolution sol = new MySolution();
int[] arr = {1, 2, 3, 4, 5, 6,7};
int[] ret = sol.solution(arr);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 " + Arrays.toString(ret) + " 입니다.");
}
}
정답
혼자 푼 것과 정답이 일치합니다.
첨부 파일
프로젝트 파일 전체를 첨부합니다.
Solution 이 문제, CorrectSolution 이 정답, MySolution이 제가 푼 것입니다.
"Project from existing sources..." 메뉴에서 불러다 쓰시면 됩니다.
728x90
'Programming > Cos Pro 1급' 카테고리의 다른 글
Cos Pro 1급 - 샘플 문제 풀이 2차 10번 (charAt() 활용하기) (0) | 2022.10.16 |
---|---|
Cos Pro 1급 - 샘플 문제 풀이 2차 9번 (문자열 비교) (0) | 2022.10.16 |
Cos Pro 1급 - 샘플 문제 풀이 2차 7번 (while문 활용) (0) | 2022.10.15 |
Cos Pro 1급 - 샘플 문제 풀이 2차 6번 (switch-case문 사용) (0) | 2022.10.14 |
Cos Pro 1급 - 샘플 문제 풀이 2차 5번 (배열: Index Out of Bounds피하기) (0) | 2022.10.13 |
댓글