728x90
https://www.acmicpc.net/problem/10699
서울의 오늘 날짜 출력
- YYYY-MM-DD 형식으로 출력해야 함
풀이1) 그냥 오늘 날짜 때려박기
#include <stdio.h>
int main() {
printf("2022-07-24");
return 0;
}
풀이2) time.h 헤더 내장 함수 사용해 범용 코드 짜기
C 에서는 <time.h>, C++ 에서는 <ctime> 사용
time() 함수로 현재 날짜, 시간 얻어와 저장
time_t t = time(NULL);
time() 함수를 호출하면 time_t 타입을 반환.
결과값은 1970년 1월1일 0시0분0초 기점으로 현재까지 흐른 시간을 초단위로 나타낸 것
localtime() 함수로 포맷 변환
struct tm t = *localtime(&t);
time 함수가 리턴해주는 값은 시스템에 따라 32/62bit 정수이므로 사용하려는 형태에 맞는 포맷팅 필요
=> localtime 함수 사용해 tm 구조체 활용.
- struct tm 구조체
struct tm {
int tm_sec; // 초, range 0 to 59
int tm_min; // 분, range 0 to 59
int tm_hour; // 시간, range 0 to 23
int tm_mday; // 일, range 1 to 31
int tm_mon; // 월, range 0 to 11
int tm_year; // 1900년 부터의 년
int tm_wday; // 요일, range 일(0) to 토(6)
int tm_yday; // 1년 중 경과 일, range 0 to 365
int tm_isdst; // 써머타임 실시 여부 (양수, 0, 음수)
};
완성 코드
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
printf("%d-%02d-%02d", 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday);
return 0;
}
'[C_C++]코딩테스트 연습 > [백준] 일반 문제' 카테고리의 다른 글
[백준] 그리디 기초 문제풀이 ① - 5585, 11047, 11399, 2217 (C언어) (0) | 2022.08.20 |
---|---|
[백준] 11726, 11727, 14852 2xn 타일링, 2133 3xn 타일링 (C, DP) (0) | 2022.08.18 |
[백준] 삼성 SW 역량 테스트 기출 - 2048 (Easy) (C언어) (0) | 2022.07.20 |
[백준] 삼성 SW 역량 테스트 기출 - 구슬탈출2 (C언어) (0) | 2022.07.19 |
[백준] 11721 열 개씩 끊어 출력하기 - C++ 입출력 (0) | 2022.01.22 |