[백준/Java] 10811번 오류 해결
2024. 3. 5. 16:11ㆍ코딩 테스트(Coding Test)/백준
문제
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
//N(바구니 수), M(역순으로 바꿀 횟수) 입력받기
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
//배열 초기화
for(int i = 0; i < N; i++) {
arr[i] = (i + 1);
}
//M번 반복
for(int x = 0; x < M; x++) {
//한 번 역순으로 바꿀 때,
//1. 순서를 역순으로 만들 범위를 정함
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
//2. 그 범위에 들어있는 바구니의 순서를 역순으로 만듦
reverse(arr, i , j);
}
System.out.print(Arrays.toString(arr));
}
static void reverse(int[] arr, int x, int y) {
while (x < y) {
int temp = arr[x - 1];
arr[x - 1] = arr[y - 1];
arr[y - 1] = temp;
x++;
y--;
}
}
}
이 코드로 제출을 헀더니 틀렸다고 나왔다.
분명히 답은 같게 나오는데ㅜㅜ
그 이유는 문제에서 원하는 출력 형식은 "가장 왼쪽에 있는 바구니부터 바구니에 적혀있는 순서를 공백으로 구분해 출력"이라고 명시되어 있는데, Arrays.toString(arr) 메소드는 배열의 요소를 "[...]" 형태로 출력한다.
이는 배열의 내용을 직렬화한 문자열을 반환하는 것이지, 요구된 출력 형식과는 다르다.
그렇기 때문에 틀렸다고 결과가 나온 것이었다.
수정한 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
//N(바구니 수), M(역순으로 바꿀 횟수) 입력받기
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
//배열 초기화
for(int i = 0; i < N; i++) {
arr[i] = (i + 1);
}
//M번 반복
for(int x = 0; x < M; x++) {
//한 번 역순으로 바꿀 때,
//1. 순서를 역순으로 만들 범위를 정함
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
//2. 그 범위에 들어있는 바구니의 순서를 역순으로 만듦
reverse(arr, i , j);
}
for (int num : arr) {
System.out.print(num + " ");
}
}
static void reverse(int[] arr, int x, int y) {
while (x < y) {
int temp = arr[x - 1];
arr[x - 1] = arr[y - 1];
arr[y - 1] = temp;
x++;
y--;
}
}
}
'코딩 테스트(Coding Test) > 백준' 카테고리의 다른 글
[Python] A×B (0) | 2024.07.17 |
---|---|
[Python] A-B (0) | 2024.07.17 |
[Python] A+B (0) | 2024.07.17 |
[Python] Hello World (0) | 2024.07.17 |
[백준] JAVA 10988번 오류 해결 (0) | 2024.03.14 |