โ ๋ฌธ์
์ ๋ ฅํ ์๊ฐ ๊ธฐ์ค์ผ๋ก 45๋ถ ์ ์ ๋ช์ ๋ช ๋ถ์ธ์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ ์ง๊ธฐ
โ๐ฅ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ์ ์ H์ M์ด ์ฃผ์ด์ง๋ค. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59)
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํ์ฌ ์๊ทผ์ด๊ฐ ์ค์ ํ ์๋ ์๊ฐ H์ M๋ถ์ ์๋ฏธํ๋ค.
โ
์ ๋ ฅ ์๊ฐ์ 24์๊ฐ ํํ์ ์ฌ์ฉํ๋ค.
24์๊ฐ ํํ์์ โํ๋ฃจ์ ์์์ 0:0(์์ )์ด๊ณ ,
๋์ 23:59(๋ค์๋ ์์ 1๋ถ ์ )์ด๋ค. ์๊ฐ์ ๋ํ๋ผ ๋, ๋ถํ์ํ 0์ ์ฌ์ฉํ์ง ์๋๋ค.
โ๐ฅ ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์๊ทผ์ด๊ฐ ์ฐฝ์์ด์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ๋, ์ค์ ํด์ผ ํ๋ ์๋ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
โ
๐ก ํ์ด
โScanner ๋ก ์ ๋ ฅ๋ฐ์์ ์ฐ์ฐํ๋ ๋ฒ๊ณผ BufferedReader ๋ก ์ ๋ ฅ๋ฐ์์ ์ฐ์ฐํ๋ ๋ฐฉ๋ฒ
๋ ๊ฐ์ง๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
์๊ณ ๋ฆฌ์ฆ ์ ๊ทผ๋ฒ
โ
1. ์ ๋ ฅ๋ฐ์ ๋ถ(min)์ด 45๋ถ๋ณด๋ค ์์ผ๋ฉด ์(hour)์์ 1์ ๋นผ์ค์ผ ํ๋ค.
โ
1-1. 0์์์ -1์ ํ๋ ๊ฒฝ์ฐ๋ ์(hour)๊ฐ -1์ด ๋๊ธฐ ๋๋ฌธ์ ์(hour)๋ฅผ 23์ผ๋ก ๊ณ ์ณ์ค๋ค.
โ
2. 45๋ถ๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ ์(hour)๋ ๊ทธ๋๋ก์ด๊ณ ์ ๋ ฅ๋ฐ์ ๋ถ(min)์ 45๋ฅผ ๋นผ์ฃผ๋ฉด ๋๋ค.
โ
์ ์๊ณ ๋ฆฌ์ฆ์์ ์ ๋ ฅ๊ฐ์ด 45๋ณด๋ค ์์ ๊ฒฝ์ฐ 60์์ (45-์ ๋ ฅ๊ฐ)์ ๋นผ์ค๋ค.
โ 1. Scanner ๋ฅผ ์ด์ฉํ ํ์ด
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt();
int min = sc.nextInt();
sc.close();
if(min < 45) {
hour--; // ์(hour) 1 ๊ฐ์
min= 60 - (45 - min); // ๋ถ(min) ๊ฐ์
if(hour < 0) {
hour = 23;
}
System.out.println(hour + " " + min);
}
else {
System.out.println(hour + " " + (min - 45));
}
}
}
โ 2. BufferedReader ๋ฅผ ์ด์ฉํ ํ์ด
BufferedReader์ ์ฐ๋ฉด readLine()์ผ๋ก ์ ๋ ฅ์ ๋ฐ๊ฒ ๋๋๋ฐ readLine() ํ ์ค์ ๋ค ์ฝ์ด์ค๊ธฐ ๋๋ฌธ์ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ ๋ ฅํ ๋ฌธ์์ด์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํด์ฃผ์ด์ผ ํ๋ค.
โ
์ด ๋, ๋ฌธ์์ด ๋ถ๋ฆฌ๋ฅผ ์ํด String Tokenizer ๋๋ split()์ ์ฌ์ฉํ๋ค. ์ฃผ์ํ ์ ์ ์ด ๋ฉ์๋๋ค์ ์ ๋ ฅ์ด ์ซ์๋ผ๋ String ํ์ ์ธ ๋ฌธ์์ด๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์, ๋ง์ฝ ๊ฒฐ๊ณผ๊ฐ์ int ๋ณ์์ ๋ด์ ๊ณ์ฐ์ ์ด์ฉํ๊ธฐ ์ํด์๋ ๋ฌธ์์ด์ int๋ก ํ๋ณํ(type casting) ํด์ค์ผ ํ๋ค. ์บ์คํ ์ ์ฌ์ฉํ๋ ๋ฉ์๋๋ Integer.parseInt()
1) String Tokenizer
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str," ");
int hour = Integer.parseInt(st.nextToken());
int min = Integer.parseInt(st.nextToken());
if(min<45) {
hour--;
min = 60-(45-min);
if(hour<0) hour=23;
} else {
min=min-45;
}
System.out.println(hour+" "+min);
}
}
2) split()
โ
String ํ์ ์ ๋ฐฐ์ด์ ์ ์ธํด์ฃผ๊ณ
br.readLine()์ ์ด์ฉํ์ฌ ๋ฐ์์จ ๋ฌธ์์ด ํ ์ค์ split()์ผ๋ก ๋ถ๋ฆฌํด์ ๋ฐฐ์ด์ ์ง์ด ๋ฃ๋๋ค.
โ
์ด ๋ ๋ฌธ์์ด์ ๋ถ๋ฆฌํ๋ ๊ธฐ์ค์ ๊ณต๋ฐฑ(์คํ์ด์ค๋ฐ ํ ์นธ)์ด๊ธฐ ๋๋ฌธ์ split(" ")์ด ๋๋ค.
โ
๊ทธ๋ผ ๊ณต๋ฐฑ ์ ๋ค์ ์๋ ๋ฌธ์์ด์ด ๋ฐฐ์ด์ ๊ฐ ์นธ์ ์์๋๋ก ๋ด๊ธฐ๊ฒ ๋๊ณ
Integer.parseInt()๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์์ ๊บผ๋ด์จ ๋ฌธ์์ด์ int๋ก ํ๋ณํ ํด์ค๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int hour = Integer.parseInt(str[0]);
int min = Integer.parseInt(str[1]);
if(min<45) {
hour--;
min = 60-(45-min);
if(hour<0) hour=23;
} else {
min=min-45;
}
System.out.println(hour+" "+min);
}
}
'Algorithm > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2480๋ฒ ์ฃผ์ฌ์ ์ธ ๊ฐ - ์๋ฐ/java (0) | 2024.04.08 |
---|---|
[๋ฐฑ์ค] 2525๋ฒ ์ค๋ธ ์๊ณ - ์๋ฐ / java (0) | 2024.04.04 |
[๋ฐฑ์ค] 14681๋ฒ ์ฌ๋ถ๋ฉด ๊ณ ๋ฅด๊ธฐ - ์๋ฐ / java (0) | 2024.04.04 |
[๋ฐฑ์ค] 2753๋ฒ ์ค๋ - ์๋ฐ / java (0) | 2024.04.04 |
[๋ฐฑ์ค] 9498๋ฒ ์ํ์ฑ์ - ์๋ฐ / java (0) | 2024.04.04 |