R의 값을 정하는 것은 selectR()로, 배열에 값을 집어넣는 것은 inputMatrix()로 기능을 분리했다.
package week3;
import java.util.Scanner;
public class Main_비밀이메일 {
static int N, R, C;
static char[][] matrix;
static String input;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
input=sc.nextLine();
N=input.length();
selectR(); // R 정하기
inputMatrix(); // 배열에 값 집어넣기
for(int i=0;i<R;i++) {
for(int j=0;j<C;j++) {
System.out.print(matrix[i][j]);
}
}
}
static void selectR() {
for(int r=1; r<N;r++) {
int c=N/r;
if(N%r==0 && r<=c) {
R=r;
C=c;
}
}
}
static void inputMatrix() {
matrix=new char[R][C];
int num=0;
for(int j=0;j<C;j++) {
for(int i=0;i<R;i++) {
matrix[i][j]=input.charAt(num);
num++;
}
}
}
}
'1일 1알고 > IM 대비 문제 복습하기' 카테고리의 다른 글
백준 2309. 일곱난쟁이 (Java) (0) | 2021.12.14 |
---|---|
백준 3985. 롤케이크 (Java) (0) | 2021.12.14 |
백준 2798. 블랙잭 (Java) (0) | 2021.12.14 |
백준 2941. 크로아티아 알파벳 (Java) 예전에 푼 방법과 비교 (0) | 2021.12.13 |
백준 17413. 단어뒤집기2 (Java) (0) | 2021.12.12 |