728x90
문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
코드 1
import sys
t = int(sys.stdin.readline())
#스택
for i in range(t):
string = sys.stdin.readline().rstrip()
string += " "
stack = []
for j in string:
if j != " ":
stack.append(j)
else:
while stack:
print(stack.pop(),end = "")
print(' ',end="")
풀이 1
문자열을 넣고 거꾸로 출력을 하니까 스택 자료구조로 구현했다.
문자열을 스택에 넣고 " "을 만나면 pop() 한다.
주의할 점은 마지막 문자열 끝에 " "가 안 들어가니까 뒤집기가 안된다.
그래서 마지막 문자열에도 " "을 넣어준다.
코드 2
import sys
t = int(sys.stdin.readline())
#문자열 슬라이싱
for i in range(t):
string = sys.stdin.readline().rstrip().split()
for str in string:
print(str[::-1],end=" ")
print()
풀이 2
python은 문자열을 다루기 좋은 언어이다.
python의 장점을 활용해 " "마다 잘라서 str[::-1] 을 사용해 뒤집어줬다.
'알고리즘 문제 풀이 > 백준' 카테고리의 다른 글
[백준] 1697 숨바꼭질 python (0) | 2022.02.26 |
---|---|
[백준] 9663 N-Queen python (*) (0) | 2022.02.25 |
[백준] 9095 1, 2, 3 더하기 python (0) | 2022.02.23 |
[백준] 1182 부분수열의 합 python (0) | 2022.02.23 |
[백준] 6588 골드바흐의 추측 python (*) (0) | 2022.02.22 |