# 문제
- 주소: https://www.acmicpc.net/problem/2525
- 종료되는 시각 구하기
# 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().split(" ");
int A = Integer.parseInt(strs[0]); // hour
int B = Integer.parseInt(strs[1]); // min
int C = Integer.parseInt(br.readLine()); // cook min
int totalMin = (A * 60) + B + C;
int endA = (totalMin / 60) % 24;
int endB = totalMin % 60;
System.out.println(endA + " " + endB);
}
}
# 입/출력 결과
# 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- 첫번째 입력값은 공백 기준으로 나누어서 String[] strs에 저장.
- 두번째 입력값은 int C에 숫자로 형변환해서저장.
- 전체 종료 시간을 분으로 환산한다.
- int totalMin을 만들어 A는 시라서 A * 60 해주고 나머지 B, C를 더해준다.
- endA는 totalMin / 60을 하고 난 몫에서 % 24를 해서 나머지 값을 저장한다.
- endB는 totalMin % 60을 하고 나머지를 저장한다.
- endA와 endB 사이에 공백을 두고 한 줄로 출력한다.
# 느낀 점
- 처음에 int endB가 60보다 크면 endA와 endB를 각각 계산하고 endA가 24면 0, endB가 60이면 0 이렇게 작성했다. 소스코드도 많이 복잡해져서 고민하다보니 A를 분으로 환산하여 A, B, C 모두 다 곱한 값을 totalMin에 저장하고 그 다음 totalMin에서 시와 분으로 만들면 되었다.
- 이런 문제를 풀고 난 뒤 이렇게도 생각할 수도 있겠다. 라는 사고력이 늘어나는 거 같다.
- 그래서 내 생각에는 코딩테스트 문제를 많이 풀고, 다른 소스코드를 많이 접해보는 것이 좋은 거 같다.
'코딩 테스트' 카테고리의 다른 글
[코딩테스트] 백준 2739번: 구구단 (0) | 2025.05.12 |
---|---|
[코딩테스트] 백준 2480번: 주사위 세개 (0) | 2025.05.11 |
[코딩테스트] 백준 2884번: 알람 시계 (0) | 2025.05.09 |
[코딩테스트] 백준 14681번: 사분면 고르기 (0) | 2025.05.09 |
[코딩테스트] 백준 2753번: 윤년 (0) | 2025.05.09 |