[문제]
해결 하지 못했던 고통의 시간들이 무려 4번... 바로 아래의 코드 부끄러우니까 접은글로 안에 넣어놓고
더보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int rows = sc.nextInt();
int cols = sc.nextInt();
sc.nextLine();
char[][] original = new char[rows][cols];
for (int i = 0; i < rows; i++) {
String line = sc.nextLine();
original[i] = line.toCharArray();
}
for (int i = 0; i < rows; i++) {
for (int j = cols - 1; j >= 0; j--) {
System.out.print(original[i][j]);
}
System.out.println();
}
}
}
[문제의 이유]
- nextInt()를 호출한 후에 nextLine()을 호출하여 줄바꿈을 하게 되면, 그 줄바꿈이 없을 경우 nextLine()이 오류 발생
- 입력이 두 개의 정수(N과 M)가 입력되고, 그 다음에 N개의 줄이 입력된다고 하고 있는데 사용자가 0 0 을 입력한다면 읽을게 없어서 오류 발생
[해결]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String[] firstLine = br.readLine().split(" ");
int rows = Integer.parseInt(firstLine[0]);
int cols = Integer.parseInt(firstLine[1]);
// 만약 rows 또는 cols가 0이라면 종료
if (rows == 0 || cols == 0) {
return;
}
char[][] original = new char[rows][cols];
for (int i = 0; i < rows; i++) {
String line = br.readLine();
original[i] = line.toCharArray();
}
for (int i = 0; i < rows; i++) {
for (int j = cols - 1; j >= 0; j--) {
System.out.print(original[i][j]);
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- Scanner 대신 BufferedReader를 사용 -> readLine() 매서드가 입력이 없을 경우 null을 반환하여 오류가 발생하지 않음
[더 간단한 코드]
친구가 짠 코드 ... 갑자기 reverse? 처음 봄 ... 정리 한번 해봐야 겠다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int a = sc.nextInt();
int b = sc.nextInt();
for(int i=0; i<a; i++) {
while(sc.hasNext()) {
StringBuilder sb = new StringBuilder(sc.next());
System.out.println(sb.reverse());
}
}
}
}
'알고리즘' 카테고리의 다른 글
백준 - 1546 (평균) (0) | 2024.12.02 |
---|---|
17362 - 수학은 체육과목 입니다 2 (0) | 2024.11.22 |
백준 2752 세수정렬 과거의 코드랑 비교하기 (1) | 2024.11.13 |
백준 5543 상근날드 1년전 코드랑 비교하기 (0) | 2024.11.07 |
Merge Strings Alternately (0) | 2023.09.10 |