Coding Note

[백준] 2884번 : 알람 시계, 2525번 : 오븐 시계 본문

JAVA/코딩 테스트

[백준] 2884번 : 알람 시계, 2525번 : 오븐 시계

jinnkim 2022. 4. 13. 18:59

- 문제

 

- 풀이1

1. BufferReader로 입력 받음.

2. StringTokenizer 클래스를 사용하여 문자열을 " "여백으로 분리한다.

 

Q. StringTokenizer?

 문자열을 토큰으로 나눌 수 있다.

https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html

 

StringTokenizer (Java Platform SE 7 )

Constructs a string tokenizer for the specified string. All characters in the delim argument are the delimiters for separating tokens. If the returnDelims flag is true, then the delimiter characters are also returned as tokens. Each delimiter is returned a

docs.oracle.com

 

- 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class CodingT3 {
	public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		int H = Integer.parseInt(st.nextToken()); //nextToken() - 다음 토큰을 불러오는 메소드
		int M = Integer.parseInt(st.nextToken());
		
		if(M < 45) {
			H--;	//시간 감소
			M = 60 - (45-M); //분 감소
			if(H < 0) {
				H = 23;
			}
			System.out.println(H + " "+ M);
		}
		else {
			System.out.println(H + " " +(M - 45));
		}	
	}
}

 

 

- 풀이2

1. split를 사용하여 " "으로 나눈다.

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CodingT3 {
	public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String[] str = br.readLine().split(" ");
		int H = Integer.parseInt(str[0]);
		int M = Integer.parseInt(str[1]);
		
		if(M < 45) {
			H--;	//시간 감소
			M = 60 - (45-M); //분 감소
			if(H < 0) {
				H = 23;
			}
			System.out.println(H + " "+ M);
		}
		else {
			System.out.println(H + " " +(M - 45));
		}
		
	}
}

 

 


 

- 문제 : 2525번. 오븐 시계

 

- 풀이

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class CodingT3 {
	public static void main(String[] args) throws Exception {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		int h = Integer.parseInt(st.nextToken()); // 시간
		int m = Integer.parseInt(st.nextToken()); // 분
		int c = Integer.parseInt(br.readLine()); // 소요 시간

		// 1시간은 60분이기에 C분에 60을 나눠서 나온 몫과 나머지를 각 시, 분 합산
		h += c / 60; // h = h+c/60
		m += c % 60; // m = m+c%60

		// 분이 60분 이상이면 1시간 추가, 분에서 60분 뺴기
		if (m > 59) {
			h += 1;
			m -= 60;
		}

		if (h > 23) {
			h -= 24;
		}

		System.out.println(h + " " + m);

	}
}

'JAVA > 코딩 테스트' 카테고리의 다른 글

[백준] 2588번 - 곱셈  (0) 2022.04.13
[JAVA] CodeUp 기초 1019 ~ 1022  (0) 2022.02.10
[JAVA] CodeUp 기초 1017 ~ 1018  (0) 2022.02.09
[JAVA] CodeUp 기초 1012 ~ 1015  (0) 2022.02.08
[JAVA] CodeUp 기초 1010 ~ 1011  (0) 2022.02.08
Comments