[백준] 9093번 단어 뒤집기
- 알고리즘/백준
- 2020. 5. 28. 10:04
반응형
반응형
문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
원래 C++로 문제를 풀지만
나는 C++로 단어를 split을 사용할줄 모른다. 내가 알기로는 C++에도 있는걸로 알고는 있는데
이름이 다른걸로 알고 있다. 그래서 사용하지 못하고 있어서 그냥 자바로 풀었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
while(n -- > 0) {
String temp = br.readLine();
String[] sss = temp.split(" ");
for (String s : sss) {
StringBuilder sb = new StringBuilder(s);
System.out.print(sb.reverse().toString().trim() + " ");
}
System.out.println();
}
}
}
코드부터 살펴보면
String을 StringBuilder로 치환시켰다. 치환시킨 이유는 단순히 StringBuilder에는 reverse()라는 메서드가 존재하기 때문이다. String에는 존재하지 않는다. 이 부분은 반복문을 통해 만들 수도 있지만... 귀찮아서 그냥 StringBuilder로 작성했다.
그리고 trim은 빈칸을 없애주는건데 사실 필요가 없다. 왜 사용했지?
아무튼 이건 값을 받아서 빈칸을 기준으로 구분지어놓으면 쉽게 해결된다.
#include <stdlib.h>
#include <iostream>
#include <stack>
using namespace std;
using std::string;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string input;
int num;
stack<char> charStack;
cin >> num;
cin.ignore();
while (num--)
{
getline(cin, input);
for (int i = 0; i < input.length(); i++)
{
if (input[i] != ' ')
{
charStack.push(input[i]);
}
else
{
while (!charStack.empty())
{
cout << charStack.top();
charStack.pop();
}
cout << ' ';
}
}
while (!charStack.empty())
{
cout << charStack.top();
charStack.pop();
}
cout << '\n';
}
}
c++소스인데... 스택으로 풀었네...
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14912번 숫자 빈도수 (0) | 2020.05.31 |
---|---|
[백준] 17388번 와글와글 숭고한 (0) | 2020.05.30 |
[백준] 17090번 미로 탈출하기 (0) | 2020.05.26 |
[백준] 1476번 날짜 계산 (0) | 2020.05.25 |
[백준] 1331번 나이트 투어 & 2251번 물통 (0) | 2020.05.24 |