https://softeer.ai/practice/info.do?idx=1&eid=990
직원이 근무한 총 시간을 분 단위로 계산하여 출력한다.
휴가를 쓰지 않으므로 총 5번의 근무시간을 입력받는다.
HH:MM ~ HH:MM으로 주어진 5일의 근무시간을 분으로 계산하여 총 몇 분간 일하였는지 출력한다.
- 5일간 일한 시간을 입력받는다.
- 입력 받은 시간을 라인단위로 구분할 수 있도록한다.
- 라인단위로 파싱한 시간을 시작시간 끝난시간으로 파싱한다.
- 라인(하루)당 근무한 시간을 분으로 구하여 전체 일한 시간에 더한다.
- 반복이 끝나면 전체 시간을 출력한다.
#include<iostream> #include<string> #include<vector> using namespace std; int TotalWorkingHours(int &total_time, const vector<string> &start_times, const vector<string> &end_times) { // 3. for (int i = 0; i < 5; ++i){ const int &delimiter = start_times[i].find(':'); const int &start_hour = stoi(start_times[i].substr(0, delimiter)); const int &start_min = stoi(start_times[i].substr(delimiter + 1)); const int &start_time_to_min = (start_hour * 60) + start_min; const int &end_hour = stoi(end_times[i].substr(0, delimiter)); const int &end_min = stoi(end_times[i].substr(delimiter + 1)); const int &end_time_to_min = (end_hour * 60) + end_min; // 4. total_time += end_time_to_min - start_time_to_min; } return total_time; } int main(int argc, char** argv) { int total_time = 0; vector<string> start_times(5); vector<string> end_times(5); // 1. 2. for (int i = 0; i < 5; ++i) { cin >> start_times[i] >> end_times[i]; } // 5. cout << TotalWorkingHours(total_time, start_times, end_times); return 0; }
import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { // 1. BufferedReader times = new BufferedReader (new InputStreamReader(System.in)); int total_time = 0; for (int i = 0; i < 5; ++i) { // 2. String time = times.readLine(); StringTokenizer st = new StringTokenizer(time, " "); String start_time = st.nextToken(); String end_time = st.nextToken(); // 3. StringTokenizer st_start_time = new StringTokenizer(start_time, ":"); String start_time_hour = st_start_time.nextToken(); String start_time_min = st_start_time.nextToken(); int start_time_to_min = (Integer.parseInt(start_time_hour) * 60) + Integer.parseInt(start_time_min); StringTokenizer st_end_time = new StringTokenizer(end_time, ":"); String end_time_hour = st_end_time.nextToken(); String end_time_min = st_end_time.nextToken(); int end_time_to_min = (Integer.parseInt(end_time_hour) * 60) + Integer.parseInt(end_time_min); // 4. total_time += end_time_to_min - start_time_to_min; } // 5. System.out.println(total_time); } }
import sys total_time = 0 // 1. 2. for _ in range(5): start_time, end_time = sys.stdin.readline().split() // 3. start_time_hour, start_time_min = map(int, start_time.split(':')) start_time_to_min = (start_time_hour*60) + start_time_min end_time_hour, end_time_min = map(int, end_time.split(':')) end_time_to_min = (end_time_hour*60) + end_time_min // 4. total_time += end_time_to_min - start_time_to_min // 5. print(total_time)