728x90
반응형
단어순서 뒤집기 성공다국어
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
5 초 | 512 MB | 4430 | 2719 | 2327 | 61.921% |
문제
스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.
입력
첫 행은 N이며, 전체 케이스의 개수이다.
N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.
- N = 5
- 1 ≤ L ≤ 25
출력
각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.
예제 입력 1
3
this is a test
foobar
all your base
예제 출력 1
Case #1: test a is this
Case #2: foobar
Case #3: base your all
과정
input을 string형태에 입력받고, split 해 주고, 거꾸로 출력 해 주는 간단한 형태이다. split 하는 부분은 일반적으로 통용되는 형태로 보이는 코드를 가져다가 사용했다.
결과
//
// Created by 전시은 on 2023/03/11.
//
// 문제 :: 단어순서 뒤집기
// 링크 :: https://www.acmicpc.net/problem/2693
// 입력 :: 첫 행은 N이며, 전체 케이스의 개수이다.
//
//N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.
//N = 5
//1 ≤ L ≤ 25
// 출력 :: 각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.
#include "../Problems.h"
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> split12605(string input, char delimiter) {
vector<string> answer;
stringstream ss(input);
string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
}
//int main()
int Solve12605()
{
cout << "[디버깅용] Solve12605 :: 시작지점 >> \n";
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int nCase;
cin >> nCase;
cin.ignore();
for(int i = 0; i < nCase; i++)
{
vector<string> result;
string sInput;
getline(cin, sInput);
result = split12605(sInput, ' ');
cout << "Case #" << i + 1 << ": ";
for(int i = result.size()-1; i >= 0; i--)
{
cout << result[i] << " ";
}
cout << "\n";
}
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 과제 안 내신 분..? - 백준 5597 (0) | 2023.03.17 |
---|---|
[알고리즘] 뒤집힌 덧셈 - 백준 1357 (0) | 2023.03.17 |
[알고리즘] 2진수 8진수 - 백준 1373 (0) | 2023.03.12 |
[알고리즘] 일곱 난쟁이 - 백준 2309 (0) | 2023.03.11 |
[알고리즘] 세로읽기 - 백준 10798 (2) | 2023.03.11 |