본문 바로가기
Baekjoon/[Code.plus] 알고리즘 기초 1/2

[BOJ/백준] 9093 단어뒤집기

by 해적거북 2021. 7. 26.
728x90

● [문제번호 9093] 단어 뒤집기

https://www.acmicpc.net/problem/9093

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

 

● 알아야 할 것

: stack 자료구조

 

● 풀이 과정

: 단어를 역으로 출력해야 함으로 stack 자료구조를 이용한다.

: 한 단어동안 stack에 한 철자씩 저장하고, 각 단어의 끝에 도달 시 stack의 모든 원소 출력

 

● 주의 할 것

: 숫자 입력 -> 공백있는 문자열 입력 시 버퍼 비우기

 

● 참고 할 것

: NULL

 

● 풀이 코드

#include <bits/stdc++.h>

using namespace std;

// 단어를 역으로 출력해야 함으로 스택 이용 (KEY POINT)
stack<char> s;
// 문자열 순회를 위한 iterator
string::iterator it;
string str;
int T;

// 스택에 쌓아둔 단어 한글자씩 출력
void word()
{
    while(!s.empty())
    {
        cout << s.top();
        s.pop();
    }
    cout << " ";
}


int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    cin >> T;
    // 숫자 받고 공백 있는 문자열을 받을 때 입력 버퍼를 비워야 함 ★
    cin.ignore();
    
    for(int t = 0; t < T; t++)      // while(T--) 간결히 사용 가능
    {
        getline(cin, str);
        
        for(it = str.begin(); it <= str.end(); it++)
        {
            // 빈칸을 만나거나 문자열의 끝에 도달한 경우
            if(*it == ' ' || it == str.end())
                word();
            // 한글자씩 스택에 쌓는 작업
            else
                s.push(*it);
        }
        
        cout << "\n";
    }
    
    return 0;
}

 

 

● [백준] - [알고리즘 기초 1/2] - [200 - 자료구조 1] 문제집

번호 문제 번호 문제 이름 풀이 링크
1 10828 스택 https://pirateturtle.tistory.com/153
2 9093 단어 뒤집기 https://pirateturtle.tistory.com/154
3 9012 괄호 https://pirateturtle.tistory.com/155
4 1874 스택 수열 https://pirateturtle.tistory.com/156
5 1406 에디터 https://pirateturtle.tistory.com/158
6 10845 https://pirateturtle.tistory.com/161
7 1158 요세푸스 문제 https://pirateturtle.tistory.com/162
8 10866 https://pirateturtle.tistory.com/164
728x90

'Baekjoon > [Code.plus] 알고리즘 기초 1/2' 카테고리의 다른 글

[BOJ/백준] 10866 덱  (0) 2021.07.26
[BOJ/백준] 1158 요세푸스 문제  (0) 2021.07.26
[BOJ/백준] 10845 큐  (0) 2021.07.26
[BOJ/백준] 1406 에디터  (0) 2021.07.26
[BOJ/백준] 1874 스택 수열  (0) 2021.07.26
[BOJ/백준] 9012 괄호  (0) 2021.07.26
[BOJ/백준] 10828 스택  (0) 2021.07.26

댓글