https://www.acmicpc.net/problem/10162

 

10162번: 전자레인지

3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은

www.acmicpc.net

 

/* 

3개의 버튼 , 각버튼은 지정시간이있고 한번 누를때마다 동작시간에 더해짐, 각 5분,1분,10초
냉동음식마다 요리할시간 t가 초단위로 표시
적절히 눌러서 시간의 합이 정확히 t초가 되도록함, 횟수는 최소
1<=t<=10000
큰초부터 나누면됨, 3개의 버튼으로 정확히 t초를 맞출수 없으면 -1을 출력
즉 10단위로 끊이지 않으면 -1 출력

*/

 

class B10162
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int t = sc.nextInt();
		sc.close();

		if (t%10 != 0) System.out.print(-1);
		else 
		{
			int cnt = t/300;
			t %= 300;
			System.out.print(cnt+" ");
			cnt = t/60;
			t %= 60;
			System.out.print(cnt + " ");
			cnt = t/10;
			t %= 10;
			System.out.print(cnt);
		}	
	}
}

 

'JAVA > Java 백준 문제풀이' 카테고리의 다른 글

자바, 백준 5585 거스름돈  (0) 2022.05.05
자바, 백준 1931  (0) 2022.04.09
자바, 백준 11047  (0) 2022.04.07
자바, 백준 11399  (0) 2022.04.06
자바, 백준 2839  (0) 2022.04.05

https://www.acmicpc.net/problem/5585

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net

 

- 접근

거스름 돈의 개수를 최소로해야하니 큰 돈부터 계산해 나가면됨

몫, 카운드 필요할 것

import java.util.*;

class B5585
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int inMoney = sc.nextInt();
		int outMoney = 1000-inMoney;
		int count = 0;
		
		while (outMoney>0) //잔돈이 0이되면 반복문 탈출
		{
			count += outMoney/500;
			outMoney = outMoney%500;
			count += outMoney/100;
			outMoney = outMoney%100;
			count += outMoney/50;
			outMoney = outMoney%50;
			count += outMoney/10;
			outMoney = outMoney%10;
			count += outMoney/5;
			outMoney = outMoney%5;
			count += outMoney/1;
			outMoney = outMoney%1;
		}
		System.out.println(count);
	}
}

 

너무 쉬운 문제라 설명할 것이 없다..

'JAVA > Java 백준 문제풀이' 카테고리의 다른 글

자바, 백준 10162 전자레인지  (0) 2022.05.08
자바, 백준 1931  (0) 2022.04.09
자바, 백준 11047  (0) 2022.04.07
자바, 백준 11399  (0) 2022.04.06
자바, 백준 2839  (0) 2022.04.05

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

한시간 넘게 고민했다

어떤식으로 풀어나가야할지 감은 잡혔는데 재배열을 어떻게 해야하는지 몰라서 막혔다

comparator, comparable 은 내겐 없는 지식이었다..

30분정도만 고민하고 가닥이 잡히면 해답을 봐야할성 싶다

없는 지식은 문제로 익히는게 기억에 오래남는듯하여..

아래 글을 참조하였음

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        
	Scanner sc = new Scanner(System.in);
	int N = sc.nextInt();
	int[][] arr = new int[N][2];
	
	for (int i=0;i<N;i++) {
		for (int j=0;j<2;j++) {
		arr[i][j] = sc.nextInt();
		}
	}
	
//	for (int i=0;i<N;i++) {		위와 같으나 다르게 표현한 것
//		arr[i][0] = sc.nextInt();
//		arr[i][1] = sc.nextInt();
//	}
	Arrays.sort(arr, new Comparator<int[]>(){	//arr를 오버라이딩한 compare에 맞춰 재배열하겠다
		@Override
		public int compare(int[] o1, int[]o2) {
			if (o1[1]==o2[1]) {	//종료시간이 같으면
				return o1[0] - o2[0]; 	//시작시간이 빠른쪽이 먼저되게
			}
			return o1[1] - o2[1]; //종료시간이 빠른쪽이 먼저되게
		}
	});
	
	int count=0;
	int k=0;	
	for (int j=0;j<N;j++) {	
		if ( k<=(arr[j][0])) { 
				k=arr[j][1];
				count++;
		}
	}
	System.out.println(count);

	}
}

 

 

https://st-lab.tistory.com/145

 

'JAVA > Java 백준 문제풀이' 카테고리의 다른 글

자바, 백준 10162 전자레인지  (0) 2022.05.08
자바, 백준 5585 거스름돈  (0) 2022.05.05
자바, 백준 11047  (0) 2022.04.07
자바, 백준 11399  (0) 2022.04.06
자바, 백준 2839  (0) 2022.04.05

+ Recent posts