#문자열 #순서바꾸기 #배열뒤집기
[백준] 뜨거운 붕어빵
https://www.acmicpc.net/problem/11945
문제 좀 잘 읽어라!
처음에 문제를 잘 이해하지 못해서 헤맸었다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 두 개의 정수 입력
String[] sArr = br.readLine().split(" ");
int n = Integer.parseInt(sArr[0]);
int m = Integer.parseInt(sArr[1]);
// n줄에 걸쳐 한 줄에 m개의 문자가 주어짐
for(int i=0; i<n; i++) {
char[] cArr = br.readLine().toCharArray();
// 첫번째와 마지막 값을 바꾸기
for(int j=0; j<m/2; j++) {
char tmp = cArr[j];
cArr[j] = cArr[m-1-j];
cArr[m-1-j] = tmp;
}
bw.write(cArr);
bw.newLine();
}
bw.flush();
br.close();
bw.close();
}
}
문제를 푼 후 다른분의 TIL을 구경하다가 발견했는데 이거 정말 대박이더라.
StringBuilder 클래스의 reserve() 메서드가 있는데 문자 시퀀스를 역순으로 바꿔주는 기능이 있다.
코드 길이도 더 적고 메모리도 더 적게썼고 속도도 더 빨랐다.
나의 코드보다 훨씬 가독성이 좋은 코드인 것 같다. 댑악댑악!
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 두 정수 n(행)과 m(열) 중에서 n을 변수에 저장
int n = Integer.parseInt(br.readLine().split(" ")[0]);
// 배열뒤집기 반복문
for(int i=0; i<n; i++) {
String s = br.readLine();
sb.append(new StringBuilder(s).reverse()).append("\n");
}
System.out.println(sb);
br.close();
}
}