티스토리 뷰
1. Java 구현
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); for(int i = 0; i < n; i++) { int h = Integer.parseInt(br.readLine().split(" ")[0]); for(int j = 0; j < h; j++) { sb.append(new StringBuilder(br.readLine()).reverse()).append("\n"); } } bw.write(sb.toString()); bw.close(); } }
2. 코드설명
이 문제는 입력받은 문자열을 90º 또는 180º 또는 270º 방향 중 하나를 선택해서 출력하면 되는 문제이다.
문자열 뒤집기를 2차원 배열형태라 생각한다. 나는 가장 쉬운 좌우대칭으로 고기를 뒤집는 방법으로 문제를 풀었다.
반복문을 통해 문자열의 끝자리 부터 하나씩 읽는 방법으로 풀 수 있지만, StringBuilder를 이용해서 풀었다.
StringBuilder 의 reverse() 메소드를 사용하면 StringBuilder 내부에 있는 문자열들을 뒤집을 수 있다.
3. Pain Point
문제가 굉장히 길기 때문에 매우 어려운 문제라고 생각했지만, 잘 생각해보면 어렵지 않고 간단한 문제였다.
문제의 길이만 보고 겁내지 말아야 겠다!
'알고리즘 > BaekJoon 알고리즘' 카테고리의 다른 글
[백준 알고리즘] Q9521 LCS - 동적계획법 (0) | 2018.11.22 |
---|---|
[백준알고리즘] Q1977 완전재곱수 (0) | 2018.11.13 |
[백준 알고리즘] Q1024 수열의 합 (0) | 2018.11.09 |
[백준 알고리즘] Q1094 막대기 - Integer.bitCount(num) (0) | 2018.11.09 |
[백준 알고리즘] Q1547 공 (0) | 2018.11.08 |