| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- unity게임만들기
- c#기초문법
- 티스토리챌린지
- 바킹독
- c#코테
- 백준 c++ 공부
- 백준코딩테스트
- c# c#프로그래머스
- 유니티공부
- c#
- c#기본문법
- 유니티서바이벌게임만들기
- unity3d게임만들기
- 백준
- 백준 C++
- Unity
- C#문법
- c#코딩기초트레이닝
- 유니티게임만들기
- unity게임
- 오블완
- 유니티3dui
- 백준코테
- unity3d
- 바킹독알고리즘
- 백준 구현문제
- unity3dservival
- 유니티
- c#프로그래머스기초문법
- c#문제
- Today
- Total
나 개발자 진짜 되냐?
백준 C++ 9093번 단어 뒤집기 ( getline, stringstream ) 본문
백준 C++ 9093번 단어 뒤집기 ( getline, stringstream )
Snow Rabbit 2026. 1. 28. 23:43
오늘은 가족끼리 마트에 다녀왔다!
오랜만에 다같이 가니 살게 많았달까..ㅎ
요즘 물가가 너무비싸서..
딸기..만이천원..
오렌지 만원...
세상에..돈이 돈이 아니다.
자! 오늘은 단어를 뒤집어보자!

문제를 읽어보았을때는 생각보다 어렵지 않다고 느껴졌다.
쪼금 헷갈리는건.. 공백도 구분해야하고 엔터도? 구분해야한다는 것이다.
이 한문장이 끝났다는걸 어떻게 알려줘야하지? 가 내 의문점이였달까?
일단 줄바꿈이 있으면 while문 다시돌기
그리고 글자를 벡터에 담아서
벡터 길이만큼 돌면서 글자 뒤집어주고 다시 새로운 벡터에 저장
그리고 출력
이 계획이었는데
reverse한 값을...어떻게 해야하는건지? 잘 모르겠고
reverse가 됐는지도 모르겠다 ㅋㅋ

망해버린 식..
제씨에게 찾아가니
나에게 두가지 친구를 소개시켜주었다.
getline 과 stringstream ..
사실 이거 두개를 힌트로 받으니..
문제를 풀었던거 같은? 느낌도 받았다..
2025.12.08 - [C++을 시작해봐요!/구현문제를 풀어봤어요!] - 백준 C++ 1152번 단어의 개수 ( getline, stringstream )
백준 C++ 1152번 단어의 개수 ( getline, stringstream )
맨날 알고리즘 알고리즘 노래만 부르다가...어느날 내가 풀었던 문제를 못푸는 불상사를 맞이하며..현타가 와서 새롭게 공부하기로 마음먹었다. 백준에 구현문제만 모아둔 곳에 가서일단 이 문
qua28.tistory.com
...
..이럴수가.. 얘도 단어의 개수네..
심지어 첫 대사가....새롭게 공부하기로....ㅋㅋㅋㅋㅋ
스읍..사람은 변하지않는걸까..
이 문자열 문제에 꼭 알아야할 친구라고
친해지라고 했다.
cin의 경우 공백이나 tab키에 입력을 끊어버리기 때문에
문장 전체를 받기 위해 우리는
getline을 사용하게 된다.
이 친구는 엔터를 만나면 ( \n < 이거 )
멈추고
그전까지 있던 모든 공백들조차 가져온다.
문법은
getline ( cin, s )라고 하며
문장 한줄을 통째로 가져오겠다.
이 getline으로 문장을 통으로 가져왔다면
우리는 다시 쪼개줘야한다.
그러는 친구가 이 stringstream 이다.
stringstream ss (s) 라고 하며
ss라고 부르고 문자열 s를 가져올거야.
ss는 가상의 입력장치가 되며,
ss >> word
해주면 cin처럼 작동해서 word에 s 문장을 공백으로 쪼갠 값이 하나하나 들어가게 된다.
자,
그리고 가장 중요한게 있다.
int T, cin T; 를 해주고
cin.ignore()를 해주어야한다고 한다.
이 친구가 뭐길래?
cin은 아까 공백에서 끊어낸다고 했다.
근데 컴퓨터에는 cin을 하고 값을 받아오면 끝에 '\n'를 가지고 있다고 한다.
근데 이게 있으면 getline에서 어머나? 앞에 이게있네 하며
글자가 없는데 그냥 끊어버리는 사고가 나기때문에
미리미리 예방차원에서 엔터를 청소해줘야한다고 한다.
그래서 여튼! getline을 쓸때에는 ignore를 꼭 써줘야한다!

이렇게 해주면 된다!
제씨는 나에게 스택으로 푸는 방법도 있다고 했다.
생각해보니 그렇다.
스택은 먼저 넣은애가 나중에 나오기 때문에
글자를 넣고..다시 빼면? 되긴하겠다는 생각이 들었다.
getline은 그대로 하되,
ss를 사용하는것이 아니라 스택을 써서
line 에서 한글자씩 글자를 스택에 넣는다.
내가 맨처음에 풀었던거처럼
엔터가 나오면
그때부터 하나씩 쌓아놓은것을 출력하고 pop하고
스택이 다 비워지면 공백을 출력하고 탈출.
각자의 장단점이 있다고 한다.
한때 스택 공부하면서 많이 썼는데...ㅋㅋㅋㅋ
구현문제 한달동안 푸느라 까먹어버렸네 ㅎ
여튼 이제 확실히 기억해야겠...다..
이젠 진짜 기억하고 단어를 쪼갤 때 활용해야겠다.
사실 이제보니 저게 내 첫번째 구현문제였다.
12월 8일이니..
오늘 1월 28일 이니까
옆으로 한칸 땡겨졌네 ㅎ
12 / 8
1 / 28
ㅎㅎㅋㅋㅋ
음....벌써 한달반이 지났다.
내가 푼 문제도 벌써 30개가 넘었을거 같다.
뭔가 아직 부족한데...하루의 두문제를 풀어야하나 싶기도한데..
이 문제 하나 푸는데도 거의 두시간이나 걸렸단 말이요!
부족한게 많은 요즘
풀어도 풀어도 어려운 요즘
어떻게 나아가야할지 모르겠는 요즘
불안은 내가 진심이라는 증거다.
내가 오늘 진심이였다면 그걸로 됐다.
'C++을 시작해봐요! > 구현문제를 풀어봤어요!' 카테고리의 다른 글
| 백준 C++ 1550번 16진수 ( 누적곱, stoi, hex ) (0) | 2026.01.29 |
|---|---|
| 백준 C++ 1292번 쉽게 푸는 문제 ( 누적합 ) (1) | 2026.01.27 |
| 백준 C++ 1100번 하얀 칸 ( 체스판 국룰, 행과 열 ) (1) | 2026.01.26 |
| 백준 C++ 17478번 재귀함수가 뭔가요? ( 재귀함수 ) (3) | 2026.01.23 |
| 백준 C++ 1032번 명령 프롬프트( fill ) (2) | 2026.01.22 |
