문제 링크
접근 방법
이 문제에 핵심
1. N개의 기능 개발이 끝난 뒤 시간을 결과로 출력합니다.
2. 23시 59분에서 1분이 지나면 00시 00분입니다.
알고리즘 진행 순서.
1. 입력된 정보를 저장합니다.
2. 프로젝트의 시간을 분으로 계산한 뒤 시간과 분으로 다시 재정의합니다.
3. 재정의해서 얻은 시, 분을 결과로 출력합니다.
구현
주어지는 프로젝트의 시작 시간을 분으로 바꿉니다.
Ex_
05 : 32 → 332분
이후 N개의 기능 개발에 걸린 시간(분)을 더합니다!
모든 N개의 소모 시간을 더한 값을 시간과 분의 형태로 재정의합니다.
시간 : (Sum(분의 합) / 60) % 24;
분 : Sum(분의 합) % 60;
예제입력 1.
1. 입력된 정보를 저장합니다.
N : 3
시작 시간 : 10시 10분
기능 1 소모 시간 : 50분
기능 2 소모 시간 : 22분
기능 3 소모 시간 : 23분
2. 프로젝트의 시간을 분으로 계산한 뒤 시간과 분으로 다시 재정의합니다.
시작 시간을 분으로 계산 : 10 × 60 + 10 = 610분
N개의 기능 소모 시간 더하기
610 + 50 + 22 + 23 = 705분
시간과 분으로 재정의
시간 : (705/60) % 24 = 11시
분 : 705%60 = 45분
3. 재정의해서 얻은 시, 분을 결과로 출력합니다.
11시 45분을 결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 정보를 저장합니다.
- StringTokenizer를 이용하여 시작 시간 및 각 기능 소모 시간을 띄어쓰기 기준 나누었습니다.
- 시작 시간을 분으로 바꾸고 모든 소모 시간을 더한 뒤 시간으로 재정의하였습니다.
- 재정의한 결과를 BufferedWriter에 저장합니다.
- BufferedWriter에 저장된 결과를 출력합니다.
결과코드
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
//입력값 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//입력값 저장
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
//시작 시간 저장 및 분으로 전환
int time = Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken());
//N개의 기능 소모 시간 더하기
for(int i=0;i<N;i++){
time += Integer.parseInt(br.readLine());
}
//시간과 분으로 재정의
int h = time / 60 % 24;
int m = time % 60;
StringBuilder sb = new StringBuilder();
//재정의를 진행한 시간 BufferedWriter 저장
sb.append(h).append(" ").append(m);
bw.write(sb.toString());
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
느낀 점
문제를 처음 접근할 때는 if문을 통해서 여러가지 조건문을 통해 처리 효율적이라고 생각되지 않아서, 분으로 처리하는 것을 떠올려서 해결하였습니다.
문제를 읽고 떠오르는 방법에 대해서 더 나은 방법이 없는지 고민해보는 것이 중요함을 깨닫게 되었습니다.
'구름톤' 카테고리의 다른 글
[구름톤 챌린지, Java] 6일차, 문자열 나누기(완전 탐색) (0) | 2023.08.21 |
---|---|
[구름톤 챌린지, Java] 5일차, 이진수 정렬(구현, 정렬) (0) | 2023.08.18 |
[구름톤 챌린지, Java] 4일차, 완벽한 햄버거 만들기(구현) (0) | 2023.08.17 |
[구름톤 챌린지, Java] 3일차, 합계산기(구현) (0) | 2023.08.17 |
[구름톤 챌린지, Java] 1일차, 운동 중독 플레이어(구현) (0) | 2023.08.14 |
댓글