기본 콘텐츠로 건너뛰기

[BOJ 9093]단어 뒤집기

#include<iostream>
#include<vector>
#include<string>
#include <sstream>
#include <iterator>
using namespace std;
template<typename Out>
void split(const std::string &s, char delim, Out result) {
std::stringstream ss;
ss.str(s);
std::string item;
while (std::getline(ss, item, delim)) {
*(result++) = item;
}
}
void reverse(string &str){
for (int i=0;i<str.length()/2;i++){
char temp = str[i];
str[i] = str[str.length()-1-i];
str[str.length()-1-i] = temp;
}
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, std::back_inserter(elems));
return elems;
}
int main(void)
{
int N;
cin >> N;
vector<string> vec;
cin.ignore();
for (int i=0;i<N;i++)
{
string str = "";
getline(cin,str);
vec = split(str,' ');
for (int j=0;j<vec.size();j++)
{
reverse(vec[j]);
if (j == vec.size()-1)
cout << vec[j] << endl;
else
cout << vec[j] << " ";
}
vec.clear();
}
}
view raw [BOJ 9093] hosted with ❤ by GitHub

댓글

이 블로그의 인기 게시물

Tree traversal의 3가지

1. 전위 순회 (Preorder Traversal) Root -> Left Tree -> Right Tree   ( 루트를 제일 처음에 방문 ) 2. 중위 순회 (Inorder Traversal) Left Tree -> Root -> Right Tree   ( 루트를 중간에 방문 ) 3. 후위 순회 (Postorder Traversal) Left Tree -> Right Tree -> Root   ( 루트를 제일 마지막에 방문 ) <소스코드> 출처 : http://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder /// C program for different tree traversals #include <stdio.h> #include <stdlib.h> /* A binary tree node has data, pointer to left child    and a pointer to right child */ struct node {      int data;      struct node* left;      struct node* right; }; /* Helper function that allocates a new node with the    given data and NULL left and right pointers. */ struct node* newNode(int data) {      struct node* node = (struct node*)                 ...