본문 바로가기
1일 1알고/IM 대비 문제 복습하기

백준 2999. 비밀이메일 (Java)

by yeong. 2021. 12. 13.

 

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++;
			}
		}
	}

}