Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자료구조 복습
- hackctf
- 파이썬
- BOJ Python
- PHP 웹페이지 만들기
- Sookmyung Information Security Study
- 풀이
- The Loard of BOF
- Javascript
- c
- 숙명여자대학교 정보보안 동아리
- C언어
- 백준
- Python
- c++
- CSS
- BOJ
- 머신러닝
- 웹페이지 만들기
- 드림핵
- 기계학습
- WarGame
- 숙명여자대학교 정보보안동아리
- 생활코딩
- siss
- lob
- XSS Game
- SWEA
- hackerrank
- HTML
Archives
- Today
- Total
혜랑's STORY
SWEA 7732번 본문
#문제
#풀이
이 문제를 풀기 위하여 생각한 방법은 입력받은 시, 분, 초를 모두 가장 작은 단위인 초로 바꾸어 계산하는 것이다. 이 외에 다른 포인트는 현재 시각이 약속 시간보다 크다면, 약속 날짜가 다음날이므로 약속시각에 현재 시각을 뺀 후 24시간인 86400초를 더해주는 것이다. 같은 내용의 코드이지만 다른 표현 방법으로 2버전을 작성해 보았다.
#코드 1
#include <stdio.h>
#include <string.h>
int main() {
int Tcase, H, M, S;
int currentHour, designatedHour;
scanf_s("%d", &Tcase);
int* result = (int*)malloc(sizeof(int) * Tcase);
for (int i = 0; i < Tcase; i++) {
scanf_s("%d : %d : %d", &H, &M, &S);
currentHour = H * (60 * 60) + M * 60 + S; //현재 시각을 초로 바꾸어 저장
scanf_s("%d : %d : %d", &H, &M, &S);
designatedHour = H * (60 * 60) + M * 60 + S; //약속 시각을 초로 바꾸어 저장
//버전1
if (currentHour > designatedHour) {
//만약 현재 시각이 약속 시각보다 큰 경우 약속시간이 다음날이라는 뜻이기 때문에 24시간인 86400초를 더해준다.
result[i] = designatedHour - currentHour + 86400;
}
else {
result[i] = designatedHour - currentHour;
}
}
for (int i = 1; i <= Tcase; i++) {
//'%02d'는 만약 1자리 수인 경우 앞에 0을 채우고 아닌경우 그대로 두자리를 출력해주는 것을 뜻한다.
printf("#%d %02d:%02d:%02d\n", i, (result[i-1] / 3600), ((result[i-1] % 3600) / 60), ((result[i-1] % 3600) % 60));
}
}
#코드 2
#include <stdio.h>
#include <string.h>
int main() {
int Tcase, H, M, S;
int currentHour, designatedHour;
scanf_s("%d", &Tcase);
int* result = (int*)malloc(sizeof(int) * Tcase);
for (int i = 0; i < Tcase; i++) {
scanf_s("%d : %d : %d", &H, &M, &S);
currentHour = H * (60 * 60) + M * 60 + S; //현재 시각을 초로 바꾸어 저장
scanf_s("%d : %d : %d", &H, &M, &S);
designatedHour = H * (60 * 60) + M * 60 + S; //약속 시각을 초로 바꾸어 저장
//버전 2
result[i] = (currentHour > designatedHour) ? (designatedHour - currentHour + 86400) : (designatedHour - currentHour);
}
for (int i = 1; i <= Tcase; i++) {
//'%02d'는 만약 1자리 수인 경우 앞에 0을 채우고 아닌경우 그대로 두자리를 출력해주는 것을 뜻한다.
printf("#%d %02d:%02d:%02d\n", i, (result[i-1] / 3600), ((result[i-1] % 3600) / 60), ((result[i-1] % 3600) % 60));
}
}
※ A ? B : C
-> 만약 A라면 B를 실행하고, A가 아니라면 C를 실행한다.
#실행 결과
'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글
[BOJ_Python] 1431번, 1920번 (0) | 2020.07.21 |
---|---|
[BOJ _Python] 11650번, 10814번 (0) | 2020.07.20 |
SWEA 3752번 (0) | 2020.07.13 |
[BOJ_Python] 1026번 (0) | 2020.04.06 |
[BOJ_Python] 1427번 (0) | 2020.04.06 |