728x90
● [문제번호 17413] 단어 뒤집기 2
https://www.acmicpc.net/problem/17413
● 알아야 할 것
: stack 자료구조와 메소드
● 풀이 과정
: 태그('<', '>') 내부 단어는 바로 출력하고
태그('<', '>') 외부 단어는 stack에 저장한다.
: stack에 저장한 단어를 출력하는 경우는
1. 반복문의 끝에 도달한 경우
2. '<'를 만난 경우
3. 태그 외부에서 공백을 만나는 경우
● 주의 할 것
: NULL
● 참고 할 것
: NULL
● 풀이 코드
#include <bits/stdc++.h>
using namespace std;
stack<char> s;
string str;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
getline(cin, str);
for(int i = 0; i <= str.length(); i++)
{
// 반복문의 끝에 도달 시
// stack에 있던 단어 출력
if(i == str.length())
{
while(!s.empty())
{
cout << s.top();
s.pop();
}
}
// '<'를 만나면 '>'를 만날 때 까지 출력
else if(str[i] == '<')
{
// stack에 있던 단어 출력
while(!s.empty())
{
cout << s.top();
s.pop();
}
// '>'를 만날 때 까지 출력
while(str[i] != '>')
{
cout << str[i];
i++;
}
// '>' 까지 출력
cout << str[i];
}
// 태그('<', '>') 외부에 있는 공백을 만나는 경우
// stack에 있는 단어 출력
else if(str[i] == ' ')
{
while(!s.empty())
{
cout << s.top();
s.pop();
}
cout << ' ';
}
// 태그('<', '>') 외부의 단어는 stack에 저장
else
{
s.push(str[i]);
}
}
return 0;
}
● [백준] - [알고리즘 기초 1/2] - [201 - 자료구조 1 (연습)] 문제집
번호 | 문제 번호 | 문제 이름 | 풀이 링크 |
1 | 17413 | 단어 뒤집기 2 | https://pirateturtle.tistory.com/165 |
2 | 10799 | 쇠막대기 | https://pirateturtle.tistory.com/166 |
3 | 17298 | 오큰수 | https://pirateturtle.tistory.com/167 |
4 | 17299 | 오등큰수 | https://pirateturtle.tistory.com/168 |
728x90
'Baekjoon > [Code.plus] 알고리즘 기초 1/2' 카테고리의 다른 글
[BOJ/백준] 17299 오등큰수 (0) | 2021.07.26 |
---|---|
[BOJ/백준] 17298 오큰수 (0) | 2021.07.26 |
[BOJ/백준] 10799 쇠막대기 (0) | 2021.07.26 |
[BOJ/백준] 10866 덱 (0) | 2021.07.26 |
[BOJ/백준] 1158 요세푸스 문제 (0) | 2021.07.26 |
[BOJ/백준] 10845 큐 (0) | 2021.07.26 |
[BOJ/백준] 1406 에디터 (0) | 2021.07.26 |
댓글