공부방

처음에 한번 잘못 파고드면 쉬운 문제도 2시간../반복문은 끝까지/약수 본문

문법/알고리즘

처음에 한번 잘못 파고드면 쉬운 문제도 2시간../반복문은 끝까지/약수

코딩 화이팅 2023. 3. 4. 13:32

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