본문 바로가기
알고리즘/Samsung

SW 1945. 간단한 소인수분해

by son_i 2023. 5. 2.
728x90

 

SW Expert Academy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

자바

N을 입력받아 2,3,5,7,11 각각의 몇 승으로 쪼개질 수 있는지 그 승 수를 구하는 문제

 

저 숫자들을 역순으로 배열에 담아놓고 배열만큼 반복문을 돌림.

반복문 안에서 N을 11로 나눈 나머지를 변수 dshare에 담음

그리고 더 나눠질 수 있는지 보기위해 while반복문을 돈다.

dshare 가 0일 때 계속 도는데 일단 처음 한 번은 무조건 돌 거니까 while 반복문 안에 num = num/arr[j] 를 해줌

그리고 ch 증가. ch는 한 수가 몇 번 나눠질 수 있는지를 체크하는 변수

dshare가 0이 아니라면 그 수로는 더이상 나눠질 수 없다는 것을 의미함. 그때 while 반복을 빠져나와서 list 맨 앞에 추가해줌. 내가 11부터 역순으로 넣었으니까 출력은 그에 역순으로 되어야하니 인덱스를 0으로 고정.

java
닫기
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; /* 사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다. 이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다. */ public class Solution { public static void main(String args[]) throws Exception { ‌‌//System.setIn(new FileInputStream("C:\\so_Project\\workspace\\BaekJoon\\src\\algorithm\\input.txt")); ‌‌BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ‌‌BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ‌‌int T = Integer.parseInt(br.readLine()); //테스트 케이스 ‌‌ ‌‌int arr[]= {11,7,5,3,2}; ‌‌for(int i=1;i<=T;i++) { //하나의 테스트케이스마다 반복 ‌‌‌int num = Integer.parseInt(br.readLine()); ‌‌‌List <Integer>list = new ArrayList<>(); ‌‌‌for(int j=0;j<arr.length;j++) { ‌‌‌‌int ch = 0 ; ‌‌‌‌int dshare = num%arr[j]; ‌‌‌‌while(dshare == 0) { ‌‌‌‌‌num = num/arr[j]; ‌‌‌‌‌ch ++; ‌‌‌‌‌dshare = num%arr[j]; ‌‌‌‌} ‌‌‌‌list.add(0,ch); ‌‌‌} ‌‌‌bw.write("#"+i+" "); ‌‌‌for(int k=0;k<list.size();k++) { ‌‌‌‌bw.write(list.get(k)+" "); ‌‌‌} ‌‌‌bw.write("\n"); ‌‌}//하나의 테스트 케이스 끝 ‌‌bw.flush(); ‌‌bw.close(); } }
728x90

'알고리즘 > Samsung' 카테고리의 다른 글

SW 1940. 가랏! RC카 !  (0) 2023.05.05
SW 1285. 아름이의 돌 던지기  (0) 2023.05.05
SW 1946. 간단한 압축 풀기  (0) 2023.05.02
SW 1948. 날짜 계산기  (0) 2023.05.02
SW 1961. 숫자 배열 회전  (0) 2023.04.27