반응형
https://www.acmicpc.net/problem/14625
14625번: 냉동식품
첫째 줄과 두 번째 줄에 시작시간과 종료시간이 시 H(0 ≤ H ≤ 23)와 분 M(0 ≤ M ≤ 59)이 정수로 빈칸을 사이에 두고 주어진다. 세 번째 줄에는 몇 분이 나오는지 알고 싶은 숫자 N(0 ≤ N ≤ 9)이 주
www.acmicpc.net
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
시작 시간, 분, 끝 시간, 분, 찾을 한 자리 수, 정답을 출력할 변수 ans를 선언 후 입력받습니다. 이후 s, e변수에 분으로 환산한 값을 계산해 저장해줍니다.
📔 풀이과정
시간형식 00시 00분을 맞춰 문자열을 반환해주는 함수 getTimeString을 실행해줍니다. 반환값은 curTime에 저장해줍니다.
curTime에 num이 있는지 검사하는 isNumExist함수를 수행해줍니다. 해당 값이 true면 ans++해줍니다.
📔 정답출력
ans를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int startHour, startMinute, endHour, endMinute, s, e, num, ans;
string getTimeString(int minute){
string minString, minuteStr, hourStr;
hourStr = to_string(minute/60);
if(hourStr.size() == 1) minString += "0" + hourStr;
else minString += hourStr;
minuteStr = to_string(minute%60);
if(minuteStr.size() == 1) minString += "0" + minuteStr;
else minString += minuteStr;
return minString;
}
bool isNumExist(string minute){
for(auto m : minute){
if(m -'0' == num) return true;
}
return false;
}
int main(){
cin >> startHour >> startMinute >> endHour >> endMinute >> num;
s = startHour * 60 + startMinute;
e = endHour * 60 + endMinute;
for(int minute = s; minute <= e; minute++){
string curTime = getTimeString(minute);
if(isNumExist(curTime)) ans++;
}
cout << ans;
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 15658 : 연산자 끼워넣기 (2) (0) | 2022.06.25 |
---|---|
(C++) - 백준(BOJ) 6987 : 월드컵 (0) | 2022.06.22 |
(C++) - 백준(BOJ) 9161 : Sir Bedavere’s Bogus Division Solutions (0) | 2022.06.16 |
(C++) - 백준(BOJ) 18409 : 母音を数える (Counting Vowels) (0) | 2022.06.15 |
(C++) - 백준(BOJ) 5046 : 전국 대학생 프로그래밍 대회 동아리 연합 (0) | 2022.05.31 |