반응형
간단한 문자열 처리(시간) 문제였습니다.
풀이방법
1. 한계시간 (n시 59분 59초)을 초로 환산한 범위까지 loop를 돌립니다.
2. 하나의 초로 된 한계시간을 다시 00(시)00(분)00(초)의 문자열 형태로 환산합니다.
3. k를 문자열로 환산한 뒤 환산된 한계시간 중 있는 문자열인지 확인해줍니다. 찾았으면 answer++
4. answer를 출력합니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n, k;
string getStringSec(int sec){
string tmp = "";
int hour = sec / 3600;
if(hour < 10)tmp += "0";
tmp += to_string(hour);
sec %= 3600;
int minute = sec / 60;
if(minute < 10)tmp += "0";
tmp += to_string(minute);
sec %= 60;
if(sec < 10) tmp += "0";
tmp += to_string(sec);
return tmp;
}
int main(){
cin >> n >> k;
int limitTime = n * 60 * 60 + 59 * 60 + 59;
int answer = 0;
string stringK = to_string(k);
for(int sec = 0; sec <= limitTime; sec++){
string stringSec = getStringSec(sec);
if(stringSec.find(stringK)!=-1)answer++;
}
cout << answer << '\n';
}
'Algorithm > String' 카테고리의 다른 글
(Python) - 백준(BOJ) 5893번 : 17배 답 (0) | 2021.01.25 |
---|---|
(C++) - 백준(BOJ) 9093번 : 단어 뒤집기 답 (0) | 2021.01.25 |
(Python) - 백준(BOJ) 5052번 : 전화번호 목록 답 (0) | 2020.10.03 |
(Javascript) - 백준(BOJ) 11816번 : 8진수, 10진수, 16진수 답 (0) | 2020.09.26 |
(C++) - 백준(BOJ) 1439번 : 뒤집기 답 (0) | 2020.09.20 |