[백준] 5426 비밀 편지 - Java
입력받은대로 2차원 배열에 저장하고 뒤에서부터 시작해 읽어 주면 쉽게 풀 수 있는 문제이다.
조금 다르게 풀어보자. 배열을 회전시켜서 풀 수 있지 않을까?
2차원 배열을 시계 방향으로 90도 회전하는 메서드를 구현한 후 입력받은 2차원 배열을 3번 회전시키면 편지의 원본을 얻을 수 있다.
회전 알고리즘은 코드를 참조하자.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for(int i=0; i<N; i++){
String str = br.readLine();
int len = (int)Math.sqrt((int)str.length());
String[][] arr = new String[len][len];
for(int j =0; j<len; j++){
for(int k=0; k<len ; k++){
arr[j][k] = str.charAt(len * j + k) + "";
}
}
arr = spin(arr, len);
arr = spin(arr, len);
arr = spin(arr, len);
for(int j=0; j<len ;j++){
for(int k=0; k<len; k++){
System.out.print(arr[j][k]);
}
}
System.out.println();
}
}
static String[][] spin(String[][] tmp, int len){
String temp[][] = new String[len][len];
for(int i=0; i<len; i++){
for(int j=0; j<len; j++){
temp[i][j] = tmp[len - 1 - j][i];
}
}
return temp;
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1759 암호 만들기 - Java (0) | 2022.05.23 |
---|---|
[백준] 2448 별찍기 11 - Java (0) | 2022.05.21 |
[백준] 6588 골드바흐의 추측 - Java (0) | 2022.05.17 |
[백준] 2447 별찍기 10 - Java (0) | 2022.05.17 |
[백준] 1992 쿼드트리 - Java (0) | 2022.05.17 |
댓글
이 글 공유하기
다른 글
-
[백준] 1759 암호 만들기 - Java
[백준] 1759 암호 만들기 - Java
2022.05.23 -
[백준] 2448 별찍기 11 - Java
[백준] 2448 별찍기 11 - Java
2022.05.21 -
[백준] 6588 골드바흐의 추측 - Java
[백준] 6588 골드바흐의 추측 - Java
2022.05.17 -
[백준] 2447 별찍기 10 - Java
[백준] 2447 별찍기 10 - Java
2022.05.17