-
728x90
확실히 경험이 적다보니,
한 문제, 한 문제마다 고비인 것 같다.ㅜㅜ(꾸준히 하다보면 나아지겠지?https://www.acmicpc.net/problem/9093
문제만 봤을때엔 크게 어려워보이지 않았었다.
getline()을 통해서 한 줄씩 문자열을 입력받고,
이 문자열을 stringstream을 이용해 단어별로 끊은 후, SWAP하듯이 바꾼 후 출력!단순히,
이런 함수를 만들어서 하려고 했으나
visualstudio에서는 잘 되었던 코드가
채점 하면 계속
출력 형식이 잘못되었습니다. 라는 메시지가 떴다ㅜㅜ[결론]
아무래도 swap하는 부분에서 오류가 있는 것 같아서,
algorithm 라이브러리 안에있는 reverse()를 그냥 가져다 쓰기로 하였다.reverse(start, end);
- start~end전 까지 역순으로#include <iostream> #include <string> #include <sstream> #include <algorithm> using namespace std; int main() { int t = 0; cin >> t; cin.ignore(256, '\n'); for (int i = 0; i < t; i++) { string str, temp; getline(cin, str); stringstream ss(str); while (ss >> temp) { reverse(temp.begin(), temp.end()); cout << temp << " "; } cout << "\n"; } return 0; }
입력받을때, 주의할 점은
cin.ignore(); 을 해 주지 않는다면.. 입력이 제대로 되지 않는다.엔터가 cin의 버퍼에 남아서 getline을 소모하기 때문이다.
따라서 꼭 버퍼를 비워주어야 한다.ㅎㅎ진짜.. 이정도면 인간승리인듯 ㅎ :)
(그냥 가져다 쓸걸..ㅜ)
역시.. 일단 reverse라는 것이 제공되는 라이브러리가 있다는 것을 몰라서 생긴 문제인 것 같다..앞으로 열공하자 ㅜㅜ
9093번: 단어 뒤집기
문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어
www.acmicpc.net
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[10845] 백준 알고리즘 : 큐(C++) (0) 2019.11.20 [1874] 백준 알고리즘 : 스택 수열(C++) (0) 2019.11.20 [9012] 백준 알고리즘 : 괄호(C++) (0) 2019.11.20 [10828] 백준 알고리즘 : 스택(C++) - 공부후 (0) 2019.11.15 [10828] 백준 알고리즘 : 스택(C++) - 공부전 (0) 2019.11.14 댓글