공부방
처음에 한번 잘못 파고드면 쉬운 문제도 2시간../반복문은 끝까지/약수 본문
https://www.acmicpc.net/problem/2999
2999번: 비밀 이메일
정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과
www.acmicpc.net
package im대비;
import java.util.Scanner;
public class bj2999_1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String Word=sc.next();
int max=0;
for (int i = 1; i*i<=Word.length(); i++) {
if (Word.length()%i==0) {
max=i;
}
}
// System.out.println(max);
char[][] word = new char[max][Word.length() / max];
for (int x = 0; x < Word.length() / max; x++) {
for (int y = 0; y < max; y++) {
word[y][x] = Word.charAt(y + x * max);
}
} // 저장된 배열 입력
for (int y = 0; y < max; y++) {
for (int x = 0; x < Word.length() / max; x++) {
System.out.print(word[y][x]);
}
}
}
}
느낀 점 : 반복문은 break쓰지 않는 이상 끝까지 간다. 그 점을 이용해 약수를 구할 때 반의 마지막 수까지 가려면 루트까지 가주면 반의 마지막 약수를 구할 수 있다. 약수를 구할 때 그 수의 제곱근까지 나누는 값을 이용해 약수를 구할 수 있다.
'문법 > 알고리즘' 카테고리의 다른 글
TreeSet구현 문제 (0) | 2023.03.20 |
---|---|
방향벡터, 돌아서 다시 처음으로(순회) (0) | 2023.03.06 |
완전 탐색 (0) | 2023.03.04 |
러시아 국기 같은 깃발 / 완전 탐색 / 문제 사고력 (0) | 2023.03.03 |
반복문 사고력 (0) | 2023.03.02 |