728x90
https://www.acmicpc.net/problem/10162
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
int[] nums = {300,60,10};
int[] result = new int[3];
while(T>=10){
int target;
for(int i=0;i<3;i++){
if(nums[i]<=T){
target = (T/nums[i]) * nums[i];
result[i] += T/nums[i];
T = T-target;
}
}
}
if(T>0){
System.out.println(-1);
}else{
StringBuilder sb = new StringBuilder();
for(int i=0;i<result.length;i++){
sb.append(result[i]);
sb.append(" ");
}
System.out.println(sb);
}
}
}
어제 동빈나에서 배운거 기억을 더듬어가며 풀어봤다
짱인디?
아래는 scanner랑 print만 써서 출력한거고
위에꺼가 여기 올린코드다. bufferedReader랑 Stringbuilder.
훨씬 빠르군!
++0731 복습
뭔가 위에꺼 왜 저렇게 푼거지
ㅋㅋㅋㅋ
다시푸니까 좀 달라짐.
다시푼게 더 나은 거 같음.
import java.util.Scanner;
class Main{
public static void main (String args[]){
Scanner sc = new Scanner(System.in);
int[] btns = {300,60,10};
int[] result = new int[3];
int num = sc.nextInt();
for(int i=0;i<btns.length;i++){
if(btns[i]<=num){
result[i] += (num/btns[i]);
num = (num%btns[i]);
}
}
if(num>0){
System.out.println(-1);
}else{
for(int i =0;i<3;i++){
System.out.print(result[i]+" ");
}
}
}
}
여기서 bufferedReader랑 Stringbuilder쓰면 더 좋아지겠지만... 귀찮아서 패스
728x90
'with my rubber duck > codingTest' 카테고리의 다른 글
11399 ATM 그리디 문제를 풀자..~ (1) | 2022.09.11 |
---|---|
그리디 알고리즘 공부하기 (feat.동빈나 이코테 강의) (0) | 2022.07.29 |
그리디 공부하기(동빈나) (0) | 2022.07.27 |
[백준 11047] 동전 풀기 껌이지~ (0) | 2022.07.25 |
DFS 알고리즘 공부하기 (0) | 2022.07.24 |
댓글