#include<iostream>
#include<array>
#include<string>
#include<sstream>
using namespace std;
int main(int argc, char** argv)
{
array<string, 10> input_str;
int result = 0;
int after_hour, before_hour, after_min, before_min;
stringstream sstream;
for (int i = 1; i < input_str.size(); i += 2) {
cin >> input_str[i - 1] >> input_str[i];
} //입력 받아오기
for (int i = 1; i < input_str.size(); i += 2) {
input_str[i].string::replace(2, 1, " ");
input_str[i - 1].string::replace(2, 1, " ");
sstream.clear();
sstream.str(input_str[i - 1]);
sstream >> before_hour >> before_min;
sstream.clear();
sstream.str(input_str[i]);
sstream >> after_hour >> after_min;
//STRING TO INT PARSING
result += (after_hour - before_hour) * 60 + (after_min - before_min);
}
cout << result;
return 0;
}
stringstream 객체를 연속하여 사용할 때는 clear()를 호출하여야 한다는 것을 몰라,, 비주얼 스튜디오로 디버깅까지 하면서,,, 왜 쓰레기값이 들어가는지 한참 고민하였다...ㅎ
istringstream 객체가 좀 더 용이할 것 같은데,, 더 알아보도록..!
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;
public class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
String[][] time = new String[5][2];
SimpleDateFormat sf = new SimpleDateFormat("HH:mm");
String input;
Date start,end;
long result = 0;
try{
for(int i = 0;i<time.length ;i++){
input = sc.nextLine();
time[i]= input.split(" "); //0 : 시작시간 1 :종료시간
start = sf.parse(time[i][0]);
end = sf.parse(time[i][1]);
result += (end.getTime() - start.getTime()) / 60000;
}
}
catch(Exception e){
}
System.out.println(result);
}
}
그래도 java는 좀 무난하게 풀지 않았나..