728x90
https://www.acmicpc.net/problem/11047
import java.util.Scanner;
class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String[] nums = sc.nextLine().split(" ");
int N = Integer.parseInt(nums[0]); // 동전개수
int K = Integer.parseInt(nums[1]); // 구해야하는 수
int[] coins = new int[N];
//동전들 배열에 담기
for(int i =0;i<N;i++){
coins[i]=sc.nextInt();
}
int sum= 0;
int cnt=0;
for(int i=N-1;i>=0;i--){
if(coins[i]<=K){
while(K-sum >= coins[i]){
sum+=coins[i];
cnt++;
}
}
}
System.out.println(cnt);
}
}
아오 배고파
복습할때 그리디 알아보기~
++0731복습
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(" ");
int N = Integer.parseInt(str[0]);
int K = Integer.parseInt(str[1]);
int[] coins = new int[N];
for(int i=0;i<N;i++){
coins[i]=sc.nextInt();
}
int cnt=0;
for(int i=N-1;i>=0;i--){
if(coins[i]<=K){
cnt+=K/coins[i];
K=K%coins[i];
}
}
System.out.println(cnt);
}
}
++0909 복습
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] nums = sc.nextLine().split(" ");
int N = Integer.parseInt(nums[0]);
int amount = Integer.parseInt(nums[1]);
int[] coins = new int[N];
for(int i=0;i<N;i++){
coins[i]=sc.nextInt();
}
int cnt = 0;
for(int i=N-1;i>=0;i--){
if(coins[i]<=amount){
cnt += amount/coins[i];
amount = amount%coins[i];
}
if(amount == 0){
break;
}
}
System.out.println(cnt);
}
}
돈이 0이되면 반복문 더 돌거 없이 빠져나오게 함.
속도 더 빨라짐
728x90
'with my rubber duck > codingTest' 카테고리의 다른 글
[백준 10162]전자레인지 와 혼자 풀었따 (0) | 2022.07.28 |
---|---|
그리디 공부하기(동빈나) (0) | 2022.07.27 |
DFS 알고리즘 공부하기 (0) | 2022.07.24 |
[백준 1152] 단어의 개수 쉬운문제 풀라다가 더 빡침 (0) | 2022.07.22 |
[백준 18870] 좌표압축 시간초과파티 + 복습 (0) | 2022.07.19 |
댓글