strigstream 은 여러 자료형이 섞여있는 string 을 입력 받을 때에 필요한 자료형에 맞는 데이터를 꺼낼때 유용하다
다음은 stringstream 을 사용해서 입력된 string 에서 공백 단위로 잘라 벡터에 푸쉬, 인덱스 추가 하는 문제이다
' : ' 기호를 공백으로 바꾸어 stringstream 버퍼에 저장된 입력 데이터 가공하고 공백을 통해 분리해서
분리된 입력 요소를 num으로 받아 로 벡터에 push_back하여 저장하고, 인덱스로 꺼내 쓸 수 있다
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<long long> time;
string clock="2022:06:22 15:15:30";
for(int i=0; i<clock.length(); i++){
if(clock[i]==':'){
clock[i]=' ';
}
}
long long num = 0;
stringstream ss;
ss.str(clock);
while(ss>>num){
time.push_back(num);
}
long long sec = 0;
sec += time[0]*365*24*60*60;
sec += time[1]*30*24*60*60;
sec += time[2]*24*60*60;
sec += time[3]*60*60;
sec += time[4]*60;
sec += time[5];
cout<<sec<<"\n";
return 0;
};
편의를 위해 윤년 없음, 월당 30일 로 계산하였다. 중요한건 stringstream 의 사용방법을 배우기 위해서였으니까!
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[프로그래머스 1 / c++] 비밀 지도 (0) | 2022.06.22 |
---|---|
[프로그래머스 1 / c++] 다트 게임 (0) | 2022.06.22 |
연습) string 에서 숫자 추출하기 (0) | 2022.06.22 |
[구현 / c++] 하루 중 3 이 하나라도 들어간 모든 시각의 경우의 수 (0) | 2022.06.21 |
[구현 / c++] 상하 좌우 이동 (0) | 2022.06.21 |
댓글