-
이번에는 BOJ의 2312번 문제 "수 복원하기" 를 풀어보도록 하자
입력으로 첫째 줄에 테스트 케이스의 수가 주어지고, 다음 줄부터 양의 정수 N이 주어진다.
출력으로 가 테스트 케이스마다 각 인수와 그인수가 곱해진 횟수를 인수가 증가하는 순으로 출력하면 되는 문제이다.
성공한 코드는 아래와 같다.
import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int T = Integer.parseInt(br.readLine()); for (int i = 0; i < T; i++) { int N = Integer.parseInt(br.readLine()); int[] arr = new int[100001]; for(int j = 2; j * j <= N; j++){ if(N % j == 0){ N /= j; arr[j]++; j--; } } if(N > 1) { arr[N]++; } for(int j = 1; j <= 100000; j++){ if(arr[j] != 0){ bw.write(j + " " + arr[j] + "\n"); } } } bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/2312
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 2407번] 조합 - Java //Wello Horld// (0) 2020.01.06 [백준 - 1212번] 8진수 2진수 - Java //Wello Horld// (0) 2020.01.06 [백준 - 2033번] 반올림 - Java //Wello Horld// (0) 2020.01.03 [백준 - 1977번] 완전제곱수 - Java //Wello Horld// (0) 2020.01.03 [백준 - 1966번] 프린터 큐 - Java //Wello Horld// (0) 2019.12.31