| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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#문제
- Unity
- 유니티공부
- 백준 C++
- 유니티3dui
- 백준코테
- c#
- unity3d
- 유니티게임만들기
- unity게임만들기
- c#코테
- 백준 c++ 공부
- 백준 구현문제
- 유니티
- C#문법
- 바킹독
- 유니티서바이벌게임만들기
- unity3dservival
- c# c#프로그래머스
- 오블완
- 백준코딩테스트
- c#기초문법
- c#프로그래머스기초문법
- c#코딩기초트레이닝
- unity게임
- unity3d게임만들기
- c#기본문법
- Today
- Total
나 개발자 진짜 되냐?
백준 C++ 1259번 팰린드롬수 ( while 조건문, 삼항 연산자 ) 본문

요즘은 문제 풀 때마다 막혀서
내 비포어 에프터를 남기기 위해
블로그를 필수적(?)으로 키게 된다.
ㅋㅋㅋ 흠
왜 이리 어려운걸까?
매일 푸는데 왜이리 매일 새로운 것인가
새로운 문제를 풀어서 그런가?!
그래도 구현문제라
막 100% 이상한 방향으로 나아가진 않는다..
한.. 80% 정도 이상한 듯
ㅋㅋㅋㅋㅋㅋㅋ
.. 오늘은 은행에서 일하는 친구와 오랜만에 연락했다.
은행에서 일하는 개발자라
투운사를 준비한다고 했다.
나도 투운사를 공부하기 위해 엄청 노력했던.. ( 사실 2주? 한 3주? )
기억이 난다.
한 달? 아니 한 3주만 더 있었으면 붙었을 거 같았다.
문제가 그랬다.
근데... 음.. 보내줬다.
자격증도, 증권사도
그땐........ 그땐...
생각하지 말아야 하는 건데 늘 마음 아프게도 생각난다.
원래 뭐든지 과거는 미화되는 법이니까....
... 늘 좋았던 기억은 계속 좋아야 하는 건데
왜 이리 날 힘들게 하는 건지...
언제쯤 아무렇지 않을지............
괜한 이야기 하니까 심란해지지

팰린드롬이라는 친구다.
문제는 일단..
while문 써서 들어가서 0일 때는 break 하고
그다음에 글자를 비교해야 하는데..
맨 끝이랑 맨 앞자리 비교하고
맨 앞자리는 더하고 맨 끝자리는 빼주면 되지 않을까?? 했다.
그리고 여기 글자가 99999가 최대라니까 5글자라 3번만 반복하면 됐다.

호기롭게 쓰고 테스트를 돌려보는데
아무리 쌩쑈를 해도 답이 안 나온데
그냥 빈통......
ㅋㅋㅋㅋ바로 지 선생에게 찾아갔다.
...ㅋㅋㅋㅋㅋ
while문이 0이어서 절대 실행이 안된단다..
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아니 나는 왜 1을 0으로 안 거지?
아직도 이 while문안에 true 나 1로 무한 돌리는 걸 헷갈려한다고?
못났다...
이러니 답은 나온다
yes가 한자리도 없다
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 안되는데
그 이유를 밑에 지 선생이 설명해 주었다.
나는 맨 끝자리수와 맨 앞자릿수를 더하기 위해서
begin과 begin + size를 해주었는데
이것은 문자 비교가 아니라고 한다.
s. begin 은 첫 글자를 가리키는 포인터 같은 거 여서
안에 들어간 글자를 알 수가 없고
이 비교는 그냥
begin 의 위치랑 size 더한 위치가 같냐고 물어본 거니
당 연 히 다른 위치니까 ㅋㅋㅋ no가 나오는 것이다....ㅋㅋㅋㅋ
문자 비교는 s [0] == s [s.size()-1]
이렇게 해주어야 한다고 한다.
흠...
좀 수정해 볼까?

if문이 너무 많은데... else도 많고
그래서 자꾸 답이 여러 개씩 나오는데 이걸 어떻게 줄어야 하나.. 싶다
bool값으로 해놓고 다 맞는지 아닌지로 하면 될 듯하다.
근데 지피티 말은 이렇게 3으로 고정해 두는 건 좋지 않은 방향이라고 했다.
...
흠.. 맞긴 하다
그냥 99999여서 3으로 한 거긴 한데
3번 이상 비교할 필요가 없기 때문...
심지어 근데 for문이.. 필요도 없다 ㅋㅋㅋㅋ그냥 3번 하면 되는데...
그래서 지우고...
지피티는 이렇게 s.size()-1 이식을 정리하라고 알려주었다.
근데 왜 s.size() -1 일까?
그 이유는 문자열의 인덱스의 시작이 0이기 때문이라고 한다.
3개 있다고 치자
인덱스는 [0][1][2]여서 마지막 인덱스는 3-1인 2이다. 그래서 size -1이다.
그리고 while문 안에 조건식에
( cin >> s )가 된다고 했다.
while ( cin >> s )
s를 읽는 데 성공하는 동안 계속 반복하라.
입력이 없으면 멈추는 것!!
그렇군요.
조금 수정할 필요가 있겠습니다.

오케이 여기까지 했고
아까는 for문으로 3번 했는데
그럴 필요가 없다
왜냐면 i는 계속 더해질 거고 j는 계속 빼질 거 기 때문에
i < j 보다 작을 때만 반복하면 된다.
그래서 이건 while문으로 작성하게 된다.

이렇게 반복해 주면 된다.
그리고 마지막에 출력을 해주면 끝인데
사실 if문으로 하면 되긴 하는데..
뭔가 재미난 걸 발견했다.

cout으로 출력하는 건데 삼항연산자가 되는 것!!
그래도 A : B가 타입이 같아야 한다고 하긴 한다.
"yes"와 숫자 0일 경우 조금 문제가 생길 수도 있다고 한다.
그래도 cout에 이런 기능이 있다는 게 신기하다!!
그리고 또!!
yes가 문자열이어서 \n을 바로 옆에다가 써도 작동한다는 것이다!
신기한 거 많이 배워간다.

오늘은...
쉬운 듯 쉽지 않은 문제를 풀어봤다.
그래도 접근방식은.. 구현이라 그런지 내가 생각했던 거랑 조금?! 비슷해서
조금?! 뿌듯하다...ㅋㅋㅋㅋ
... 이제 마음을 달래러 가야지 ㅎ
'C++을 시작해봐요! > 구현문제를 풀어봤어요!' 카테고리의 다른 글
| 백준 C++ 1924번 2007년 ( switch, 배열 출력 ) (0) | 2026.01.06 |
|---|---|
| 백준 C++ 7568번 덩치 ( 브루트포스, vector<pair> ) (0) | 2026.01.05 |
| 백준 C++ 10798번 세로읽기 ( 문자열 += ) (0) | 2026.01.01 |
| 백준 C++ 11050번 이항 계수 1 ( 펙토리얼 ) (0) | 2025.12.31 |
| 백준 C++ 11866번 요세푸스 문제 0 ( Queue ) (0) | 2025.12.30 |
