μ•Œκ³ λ¦¬μ¦˜ 문제/BOJ_Java

[BOJ/Step2] 2884 : μ•ŒλžŒ μ‹œκ³„ (JAVA)

NaNaRinπŸ™ƒ 2021. 1. 6. 18:02

www.acmicpc.net/problem/2884

 

2884번: μ•ŒλžŒ μ‹œκ³„

μƒκ·Όμ΄λŠ” 맀일 μ•„μΉ¨ μ•ŒλžŒμ„ λ“£κ³  μΌμ–΄λ‚œλ‹€. μ•ŒλžŒμ„ λ“£κ³  λ°”λ‘œ μΌμ–΄λ‚˜λ©΄ λ‹€ν–‰μ΄κ² μ§€λ§Œ, 항상 쑰금만 더 μžλ €λŠ” 마음 λ•Œλ¬Έμ— 맀일 학ꡐλ₯Ό μ§€κ°ν•˜κ³  μžˆλ‹€. μƒκ·Όμ΄λŠ” λͺ¨λ“  방법을 λ™μ›ν•΄λ³΄μ•˜μ§€λ§Œ,

www.acmicpc.net


문제

μƒκ·Όμ΄λŠ” 맀일 μ•„μΉ¨ μ•ŒλžŒμ„ λ“£κ³  μΌμ–΄λ‚œλ‹€. μ•ŒλžŒμ„ λ“£κ³  λ°”λ‘œ μΌμ–΄λ‚˜λ©΄ λ‹€ν–‰μ΄κ² μ§€λ§Œ, 항상 쑰금만 더 μžλ €λŠ” 마음 λ•Œλ¬Έμ— 맀일 학ꡐλ₯Ό μ§€κ°ν•˜κ³  μžˆλ‹€.

μƒκ·Όμ΄λŠ” λͺ¨λ“  방법을 λ™μ›ν•΄λ³΄μ•˜μ§€λ§Œ, 쑰금만 더 μžλ €λŠ” λ§ˆμŒμ€ κ·Έ μ–΄λ–€ 것도 없앨 μˆ˜κ°€ μ—†μ—ˆλ‹€.

이런 상근이λ₯Ό λΆˆμŒν•˜κ²Œ 보던, μ°½μ˜μ΄λŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜λŠ” 방법을 μΆ”μ²œν•΄ μ£Όμ—ˆλ‹€.

λ°”λ‘œ "45λΆ„ 일찍 μ•ŒλžŒ μ„€μ •ν•˜κΈ°"이닀.

이 방법은 λ‹¨μˆœν•˜λ‹€. μ›λž˜ μ„€μ •λ˜μ–΄ μžˆλŠ” μ•ŒλžŒμ„ 45λΆ„ μ•žμ„œλŠ” μ‹œκ°„μœΌλ‘œ λ°”κΎΈλŠ” 것이닀. μ–΄μ°¨ν”Ό μ•ŒλžŒ μ†Œλ¦¬λ₯Ό λ“€μœΌλ©΄, μ•ŒλžŒμ„ 끄고 쑰금 더 잘 것이기 λ•Œλ¬Έμ΄λ‹€. 이 방법을 μ‚¬μš©ν•˜λ©΄, 맀일 μ•„μΉ¨ 더 μž€λ‹€λŠ” 기뢄을 λŠλ‚„ 수 있고, 학ꡐ도 μ§€κ°ν•˜μ§€ μ•Šκ²Œ λœλ‹€.

ν˜„μž¬ 상근이가 μ„€μ •ν•œ μ•ŒλžŒ μ‹œκ°μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 창영이의 방법을 μ‚¬μš©ν•œλ‹€λ©΄, 이λ₯Ό μ–Έμ œλ‘œ 고쳐야 ν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯

첫째 쀄에 두 μ •μˆ˜ H와 M이 μ£Όμ–΄μ§„λ‹€. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 ν˜„μž¬ 상근이가 μ„€μ •ν•œ 놓은 μ•ŒλžŒ μ‹œκ°„ Hμ‹œ M뢄을 μ˜λ―Έν•œλ‹€.

μž…λ ₯ μ‹œκ°„μ€ 24μ‹œκ°„ ν‘œν˜„μ„ μ‚¬μš©ν•œλ‹€. 24μ‹œκ°„ ν‘œν˜„μ—μ„œ ν•˜λ£¨μ˜ μ‹œμž‘μ€ 0:0(μžμ •)이고, 끝은 23:59(λ‹€μŒλ‚  μžμ • 1λΆ„ μ „)이닀. μ‹œκ°„μ„ λ‚˜νƒ€λ‚Ό λ•Œ, λΆˆν•„μš”ν•œ 0은 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

좜λ ₯

첫째 쀄에 상근이가 창영이의 방법을 μ‚¬μš©ν•  λ•Œ, μ„€μ •ν•΄μ•Ό ν•˜λŠ” μ•ŒλžŒ μ‹œκ°„μ„ 좜λ ₯ν•œλ‹€. (μž…λ ₯κ³Ό 같은 ν˜•νƒœλ‘œ 좜λ ₯ν•˜λ©΄ λœλ‹€.)

 

예제 μž…λ ₯ 1

10 10

 

예제 좜λ ₯ 1

9 25

 

예제 μž…λ ₯ 2

0 30

 

예제 좜λ ₯ 2

23 45

 

예제 μž…λ ₯ 3

23 40

 

예제 좜λ ₯ 3

22 55


풀이

1. hμ‹œκ°„ m뢄을 h * 60 + mλΆ„μœΌλ‘œ λ³€κ²½ν•œλ‹€

2. h * 60 + mλΆ„μ—μ„œ 45뢄을 λΊ€λ‹€ == time

3. time이 μŒμˆ˜μΈμ§€ ν™•μΈν•œλ‹€ (0μ‹œμΌ 경우 45뢄을 λΉΌλ©΄ 음수)

4. κ²°κ³Ό 좜λ ₯

   4-1. μ–‘μˆ˜λ©΄ time을 μ΄μš©ν•΄μ„œ time/60 μ‹œ time%60 λΆ„μœΌλ‘œ 좜λ ₯

   4-2. 음수면 23μ‹œ m+15λΆ„ 으둜 좜λ ₯

 

import java.util.Scanner;

public class B2884 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int h = sc.nextInt();
		int m = sc.nextInt();
		
		int time = h * 60 + m - 45;
		
		if ( time >= 0 ) {
			System.out.println( (time/60) + " " + (time%60) );
		} else if ( time < 0 ) {
			System.out.println("23 " + (15+m) );
		}

	}

}

 

μ΄λ ‡κ²Œ 제좜 ν•΄μ„œ ν†΅κ³ΌλŠ” ν–ˆλŠ”λ°

import java.util.Scanner;

public class B2884 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int h = sc.nextInt();
		int m = sc.nextInt();
		
		if ( m >= 45 && h != 0 ) {
			System.out.println( h + " " + ( m-45 ) );
		} else if ( m < 45 && h != 0 ) {
			System.out.println( (h-1) + " " + ( 15+m ) );
		} else if ( m >= 45 && h == 0 ) {
			System.out.println( 23 + " " + ( m-45 ) );
		} else if ( m < 45 && h == 0 ) {
			System.out.println( 23 + " " + ( 15+m ) );
		}

	}

}
import java.util.Scanner;

public class B2884 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int h = sc.nextInt();
		int m = sc.nextInt();
		
		if (h != 0) {
			if ( m >= 45) {
				System.out.println( h + " " + ( m-45 ) );
			} else if ( m < 45 ) {
				System.out.println( (h-1) + " " + ( 15+m ) );
			}
		} else {
			if ( m >= 45 ) {
				System.out.println( 23 + " " + ( m-45 ) );
			} else if ( m < 45 ) {
				System.out.println( 23 + " " + ( 15+m ) );
			}
		}
	}

}

이 두 κ°œλŠ” μ–΄λŠ λΆ€λΆ„λ•Œλ¬Έμ— μ•ˆλ˜λŠ”κ±΄μ§€ λͺ¨λ₯΄κ² λ”°..γ…œγ