| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 유니티서바이벌게임만들기
- 백준 c++ 공부
- 유니티3dui
- c#프로그래머스기초문법
- c#문제
- c#코테
- 백준 구현문제
- C#문법
- 백준코딩테스트
- 유니티공부
- unity3d
- unity게임만들기
- 오블완
- c#기초문법
- c#기본문법
- c#
- c# c#프로그래머스
- unity3d게임만들기
- 유니티게임만들기
- c#코딩기초트레이닝
- 바킹독
- Unity
- 백준
- 백준코테
- unity3dservival
- 티스토리챌린지
- 유니티
- 바킹독알고리즘
- 백준 C++
- unity게임
- Today
- Total
나 개발자 진짜 되냐?
백준 C++ 1924번 2007년 ( switch, 배열 출력 ) 본문

오늘은 2026년....인데
문제는 2007년도다
ㅋㅋㅋㅋ 거의 20년 전이네..
2007년도로 돌아가고 싶다.
가족끼리 도란도란 즐거운 시간 보내던 때가 좋았다.
... 그립다
그리워해도 돌아가지 못한다는 게 참 아쉽다
시간을 참 절대적인 거 같다.
돌아가지도 넘어가지도 못한다는 게
오래오래 그 자리에 머물고 싶다.
오래오래..

생각보다 쉬울 줄 알았던 문제는 생각보다 난관에 봉착했다.
고민인 건 31일까지는 %7로 해서 구할 수 있지만
2월 1일은 달이 넘어가는데 어떻게 계산하지? 였다.
지피티에게 고민 끝에 물어보니
일수를 배열로 하라고 말해주었다.
하지만 나, 말을 잘 들을 리가 없지
ㅋㅋㅋㅋ 일수만 보고
아 다 더하고 나누면 되려나? 했다.

그리고 혼났다.
전체일 수를 다 더하라는 게 아니라
필요한 부분만큼 월의 일수를 구하기 위한 배열을 만들라는 것이었다.
ㅋㅋㅋㅋㅋ바보....
그래서 열심히 고친 문제

큰 문제점 2가지
1. 우리는 m월 이전까지의 숫자만 더해주고
m월의 일을 더해주지 않았다...ㅋㅋㅋ
sum += d가 필요하다.

그다음에 switch문에서 break를 안 해주면
case문을 다 돈다고 한다.
그래서 break가 필수적으로 들어가 줘야 한다.

하지만 지피티는 스위치문으로 풀라고 하지 않았다.
새로운 방법을 알려주었다.
먼저 이거부터다.

문제의 기준이 1월 1일 월요일이기 때문에
1월 1일은 0일을 세는 거라
d - 1이 된다.
1월 2일은 1일이 기준인데 2일 하루 지났으니
2-1 =1 이 된다.
3일도 마찬가지다. 1일 기준으로 이틀이 지났으니 3-1 =2로 계산된다.
아까도 충분히 됐는데 이 방법을 쓰는 이유가 뭘까?
위에도 말했듯 1월 1일 월요일이 기준이기 때문에
문제에 맞게 풀려면 기준을 1일로 잡고 0일이 지났으니 0부터 mon을 해줘야 한다 이 말이다.
그럼 사실 스위치도 0을 mon으로 잡으면 되긴 한다.
근데 웃긴 건
이걸 한 줄로 정리해 주는 좋은 친구가 있다고 한다.
그것은 배열을 요일별로 정리해 두고
cout으로 꺼내는 것이다.

이렇게 해주면 0이 월이 되며 정상적으로 출력이 된다.

헉 이렇게 간단하다니...ㅋㅋ
간단한 문제가 아니었지만? 글자가 조금 줄어드니 되게 간단해 보인다.
그리고 뭔가 cout에서 출력할 때 저렇게 배열의 값이 출력되는 건 물론이고
저 안에서 계산해서 바로 출력이 되는 것도 놀라웠다.
하나 또 배워간다.
2007년을 기억하며 오늘은 자야겠다.
고생했다 오늘 하루도 :)
'C++을 시작해봐요! > 구현문제를 풀어봤어요!' 카테고리의 다른 글
| 백준 C++ 2745번 진법 변환 ( 진수는 누적 곱! ) (0) | 2026.01.12 |
|---|---|
| 백준 C++ 25206번 너의 평점은 ( mapping, 실수 출력 형식 ) (1) | 2026.01.09 |
| 백준 C++ 7568번 덩치 ( 브루트포스, vector<pair> ) (0) | 2026.01.05 |
| 백준 C++ 1259번 팰린드롬수 ( while 조건문, 삼항 연산자 ) (0) | 2026.01.02 |
| 백준 C++ 10798번 세로읽기 ( 문자열 += ) (0) | 2026.01.01 |
