반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1976번 시각 덧셈 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1976번
3) 문제 출처
2. 문제
시 분으로 이루어진 시각을 2개 입력 받아, 더한 값을 시 분으로 출력하는 프로그램을 작성하라.
(시각은 12시간제로 표시한다. 즉, 시가 가질 수 있는 값은 1시부터 12시이다.)
3. 제약사항
- 시는 1 이상 12 이하의 정수이다. 분은 0 이상 59 이하의 정수이다.
4. 입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 4개의 수가 주어진다.
첫 번째 수가 시를 나타내고 두 번째 수가 분을 나타낸다. 그 다음 같은 형식으로 두 번째 시각이 주어진다.
5. 출력
출력의 각 줄은 '#t'로 시작하고 공백을 한 칸 둔 다음, 시를 출력하고 공백을 한 칸 둔 다음 분을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
6. 풀이
- 시간을 더한 변수 H_Result, 분을 더한 변수 M_Result가 있다.
- 먼저, M_Result가 0부터 59이하까지가 범위므로 M_Result가 60이상이면 60으로 나눠 몫은 H_Result에 더해주고, 나머지는 M_Result가 된다.
- H_Result는 1부터 12까지가 범위이므로, 13이 되면 1, 14가 되면 2, 즉 12로 나눠서 나머지를 H_Result로 하는데, 12나 24는 나머지가 0이 되므로 범위를 벗어나게 된다.
- 그렇기 때문에, 12의 배수면 H_Result를 12로 정한다.
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=1;tc<=T;tc++) {
int H1 = sc.nextInt();
int M1 = sc.nextInt();
int H2 = sc.nextInt();
int M2 = sc.nextInt();
int H_Result = H1 + H2;
int M_Result = M1 + M2;
if(M_Result>=60) {
H_Result += M_Result/60;
M_Result = M_Result%60;
}
if(H_Result>12) {
if(H_Result%12==0) H_Result = 12;
else H_Result = H_Result%12;
}
System.out.printf("#%d %d %d\n",tc,H_Result, M_Result);
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1926번 간단한 369게임 자바(Java) (2) | 2021.02.11 |
---|---|
[SW expert Academy] SWEA 2005번 파스칼의 삼각형 자바(Java) (0) | 2021.02.10 |
[SW expert Academy] SWEA 1247번 최적 경로 자바(Java) (0) | 2021.02.10 |
[SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1966번 숫자를 정렬하자 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1940번 가랏! RC카! 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 9229번 한빈이와 Spot Mart 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1228번 암호문1 자바(Java) (0) | 2021.02.08 |
최근댓글