Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sql문
- 메서드
- Java
- 클래스
- 자바스크립트
- 알고리즘
- 형변환
- DML
- 프로그래머스 SQL
- 스프링
- mybatis
- String클래스
- SQL
- github
- 프론트엔드
- 개발자
- 정보처리기사
- Linux
- 자바
- 백준
- MySQL
- where
- JavaScript
- 프로그래머스 sql 고득점 kit
- 백엔드
- BufferedReader
- 데이터 조회
- 프로그래밍
- 웹개발
- Git
- scanner
- 예외처리
- 정보처리기사필기요약
- select문
- select
- StringBuilder
- 리눅스
- html
- 입출력
- order by
Archives
- Today
- Total
ToBe끝판왕
[ 알고리즘 ] 백준 2884번 문제 - 자바( JAVA ) 본문
반응형
주의사항
※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.
백준 2884번 문제
백준 알고리즘의 단계별 문제 풀기
2단계 < 조건문 >
▶ 해당 문제 링크
https://www.acmicpc.net/problem/2884
코딩 하기
1) Scanner 사용
import java.util.Scanner;
public class Main {
public static void main( String[] args ) {
Scanner sc = new Scanner( System.in );
int H = sc.nextInt(); // 시
int M = sc.nextInt(); // 분
sc.close();
if( M < 45 ) {
H--; // 시( hour ) 1감소
M = 60 - ( 45 - M ); // 분( minute ) 감소
if( H < 0 ) {
H = 23;
}
System.out.println( H + " " + M );
}
else {
System.out.println( H + " " + ( M - 45 ) );
}
}
}
2) BufferedReader 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
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 H = Integer.parseInt( st.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 ) );
}
}
}
문제 해결
※ 주의사항
• 24시간 표현을 사용해야 한다.
• 입력은 공백 한칸을 기준으로 구분되어 입력된다.
• 출력 시, 불필요한 0 은 사용 X
▶ 입력된 시간의 45분 전 시간을 구하는 문제
입력받은 분( minute ) 을 기준으로
• 45보다 작으면 시( hour )에서 - 1
• 45보다 크면 분( minute) 에서 - 45
• 또한, 시( hour )가 0보다 작아질 경우 시( hour )을 23으로 수정한다.
• 분( minute )은 60분이니, 만약 입력값이 45보다 작을경우 ( 45 - 입력값 )의 차이만큼 60에서 빼주면 된다.
즉, 60 - ( 45 - 입력값 ) 이 된다.
if( M < 45 ) {
H--; // 시( hour ) 1감소
M = 60 - ( 45 - M ); // 분( minute ) 감소
if( H < 0 ) {
H = 23;
}
System.out.println( H + " " + M );
}
else {
System.out.println( H + " " + ( M - 45 ) );
}
반응형
'■ 알고리즘 > 백준 JAVA' 카테고리의 다른 글
[ 알고리즘 ] 백준 2739번 문제 - 자바( JAVA ) (0) | 2022.05.24 |
---|---|
[ 알고리즘 ] 백준 2480번 문제 - 자바( JAVA ) (0) | 2022.05.24 |
[ 알고리즘 ] 백준 9498번 문제 - 자바( JAVA ) (0) | 2022.05.20 |
[ 알고리즘 ] 백준 1330번 문제 - 자바( JAVA ) (0) | 2022.05.18 |
[ 알고리즘 ] 백준 2588번 문제 - 자바( JAVA ) (0) | 2022.05.18 |
Comments