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
- select문
- 예외처리
- 입출력
- 정보처리기사필기요약
- 정보처리기사
- sql문
- 프론트엔드
- Git
- 프로그래머스 sql 고득점 kit
- scanner
- mybatis
- StringBuilder
- 프로그래머스 SQL
- 형변환
- 자바
- BufferedReader
- 웹개발
- JavaScript
- 리눅스
- 자바스크립트
- Java
- DML
- MySQL
- Linux
- 클래스
- 백엔드
- select
- github
- where
- 메서드
- 스프링
- String클래스
- order by
- 개발자
- 프로그래밍
- 백준
- 데이터 조회
- html
- SQL
- 알고리즘
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