https://www.acmicpc.net/problem/2999
2999번: 비밀 이메일
문제 매일 밤, 정인이는 상근이에게 이메일을 보낸다. 정인이는 자신의 이메일이 해킹당할 수도 있다는 생각에, 내용을 항상 암호화해서 보낸다. 정인이가 사용하는 암호 알고리즘은 다음과 같다. 정인이가 보내는 메시지는 총 N글자이다. 먼저, 정인이는 R<=C이고, R*C=N인 R과 C를 고른다. 만약, 그러한 경우가 여러 개일 경우, R이 큰 값을 선택한다. 그 다음, 행이 R개고, 열이 C개인 행렬을 만든다. 이제 메시지를 행렬에 옮긴다. 첫 번째 행의 첫
www.acmicpc.net
목표: 입력 받은 메시지를 암호화 하기 전 메시지로 출력하기 |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.next();
//입력 받은 글자를 세기
int N=s.length();
int r = 0, c = 0,rf = 0 ,cf =0;
int max = 0;
for (cf = 1; cf <= N; cf++) {
for (rf = 1; rf <= cf; rf++) {
if(cf * rf == N ) {
if(r < rf) {
r = rf;
c = cf;
}
}
}
}
int index =0;
char[][] arr = new char[c][r];
//행 열에 입력 받기 열 0 행 1 2 3 4
for (int i = 0; i < c; i++) {
for (int j = 0; j < r; j++) {
arr[i][j] = s.charAt(index);
index++;
}
}
// 출력하기 행 0 열 1 2 3 4
for (int j = 0; j < r; j++) {
for (int i = 0; i < c; i++) {
System.out.print(arr[i][j]);
}
}
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 3985번 롤케이크 (0) | 2020.04.01 |
---|---|
[백준] 2577번 숫자의 개수 (0) | 2020.04.01 |
[백준] 2941번 크로아티아 알파벳 (0) | 2020.04.01 |
[백준] 2178번 미로탐색 (0) | 2020.04.01 |
[백준] 2630번 색종이 만들기 (0) | 2020.04.01 |