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

크리스마스 이브군요!
다들 좋은사람과 좋은날을 보내길 바라겠습니다.
물론 내일도요!
크리스마스에 쉬는건 참 좋은거같습니다.
선물도 나누고, 휴일이라 집에서 쉬기도 하고
산타 분장도 해보고 말이죠.
저는 크리스마스에 뭐하냐고요?
저는 알바를 갑니다..^-^
아직 백수인 저는
공휴일 = 일하는 날 이기 때문이지요.
제 가까운사람들에게 조금 미안하긴 합니다.
이해해줘서 고맙읍니다.
그래도 오늘의 문제를 풀어봐야겠지요! 헷갈렸던게 있어서 오늘은 정리하러왔어요!
같이 봐요!!


문제... 가 생각보다 안 어렵다는 생각이 들었습니다.
근데 처음에 사진이 안 보여서 막 찾아다녔죠.
사진이 깨져서 영어단어로 갑자기 숫자가 되니까 이상하더라구요.
근데 누가 새로고침하면 괜찮아진다 해서 했더니 됐슴네다.
여하튼 그냥 일일히 해도 될 거 같은데? 정말 하나하나 쓰는 문제일까? 하며 나는 스위치를 떠올렸죠...
뭔가 그런 조건문 왕 많을 때 case 하면 좋았던 기억이 나네요

처참한... 상태......
바로 나의 문법의 부족함을 느끼고 지 선생을 찾아갔슴니다.
지 선생은 스위치로 풀 필요 없다고 했지만
나는 집요하게 그래도 스위치로 진짜 못 푸냐!!라고 물어보니..
그런데! 스위치문으로도 문제를 풀 수 있다고 합니다.
switch
1. 한 개의 값을 기준
2. case에는 딱 떨어지는 값 비교가능
즉, 위에 쓴 조건문은 절대 안 된다는 말 씀..
아니 근데 사실 문법도 틀렸다 && 이것도 아니고.. = 이것도 한 개가 아니라 두 개..ㅋ
따라 쓰지 마세요....ㅋㅋ
그래서 만약에 쓰려면..!!
for (char c : s) {
switch (c) {
case 'A':
case 'B':
case 'C':
sum += 3;
break;
case 'D':
case 'E':
case 'F':
sum += 4;
break;
case 'G':
case 'H':
case 'I':
sum += 5;
break;
......
}
이렇게 쓸 수 있습죠
저렇게 쓰면 되는구나.....
그래도 자주 안 쓴다니까.. 기억만 조금.. 해놔야지..
아! 그래서 풀었냐고요!?
녜!!!

ㅋㅋㅋ 내 처참한.. 답도 공개..

공개와 동시에, 가장 현명하게 푸는지 선생의 답을 봤슴니다.
그리고 특이한 사실을 알게 되었죠
문자열도.. 크기가?! 분간이 된다는 것..
C++에서는 문자도 숫자처럼 크기 비교가 된다고 합니다!!
그래서..
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
int sum = 0;
for (char c : s) {
if (c <= 'C') sum += 3; // ABC
else if (c <= 'F') sum += 4; // DEF
else if (c <= 'I') sum += 5; // GHI
else if (c <= 'L') sum += 6; // JKL
else if (c <= 'O') sum += 7; // MNO
else if (c <= 'S') sum += 8; // PQRS
else if (c <= 'V') sum += 9; // TUV
else sum += 10; // WXYZ
}
cout << sum;
}
이런 식이 가능하다는 것..!!
문자열도 크기비교가 된다.. 메모메모
배운 것
switch문과 문자열도 대소비교가 가능하다!
case에 조건문 못쓴다.
switch문에는 값이 한 개만 들어간다.
오늘은 산타 느낌나게 존댓말로 마무리한다.
앗..마무리한다더니...ㅋㅋ
!! 마무리합니다.
다들 즐거운 성탄절 되세요 :)

'C++을 시작해봐요! > 구현문제를 풀어봤어요!' 카테고리의 다른 글
| 백준 C++ 11866번 요세푸스 문제 0 ( Queue ) (0) | 2025.12.30 |
|---|---|
| 백준 C++ 2775번 부녀회장이 될테야 ( 2차원 배열, 누적합 ) (0) | 2025.12.28 |
| 백준 C++ 1316번 그룹 단어 체커 ( break, continue ) (0) | 2025.12.22 |
| 백준 C++ 4673번 셀프 넘버 ( while문으로 자릿수 쪼개기) (0) | 2025.12.20 |
| 7일째 1일 1문제 달성중 (0) | 2025.12.18 |
