Coding - Algo/Java
[백준] 2999번:비밀 이메일 (Java 자바)
jainn
2021. 8. 28. 23:23
728x90
문제
https://www.acmicpc.net/problem/2999
2999번: 비밀 이메일
정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과
www.acmicpc.net
풀이 및 소스코드
그냥 원상복구 해준 후, 출력해줬다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String s = br.readLine();
int n =s.length();
int r= 0;
for(int i=1;i<=Math.sqrt(n);i++) {
//1부터 루트n까지 n과 나눠지는 값들 중 가장 큰 수를 r에 넣는다.
if(n%i==0) {
r = Math.max(r, i);
}
}
int c = n/r;
char[][] msg = new char[r][c];
int idx = 0;
for(int j=0;j<c;j++) {
for(int i=0;i<r;i++) {
msg[i][j]=s.charAt(idx++);
}
}
for(int i=0;i<r;i++) {
for(int j=0;j<c;j++) {
sb.append(msg[i][j]);
}
}
System.out.println(sb);
}
}
반응형