문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
예제 입력 1 복사
2 I am happy today We want to win the first prize
예제 출력 1 복사
I ma yppah yadot eW tnaw ot niw eht tsrif ezirp
코드
import sys
n=int(sys.stdin.readline())
alp=[] #문자를 추가할 스택
for i in range(n): #n번만큼 반복
alp=list(map(list,input().split())) #한번에 한줄에 입력하기위한 코드
#이중 리스트와 pop()함수를 이용하여 문제 해결
for j in alp: #이중 리스트를 돌려줌
for k in range(len(j)): #이중리스트의 문자열의 길이만큼 pop함수로 뽑아내줘야됌
print(j.pop(),end='')
print(end=' ') #띄어쓰기를 위한 코드
코드설명
백준님의 스택 강의속 문제였기때문에 가능하면 스택내용속의 것을 이용하여 풀고 싶었다.
파이썬은 리스트자체가 스택처럼 구현할 수 있기때문에 리스트를 이용하였고, reverse함수를 이용하거나 다른 list를 생성하는 방식도 쓸수 있었지만 띄어쓰기를 기준으로 문장을 잘라 이중리스트로 입력한 후 이중리스트를 pop함수를 통해 문자를 하나씩 출력하여 문제를 해결하였다.
느낀점
- pop함수의 쓰임 이해
- 문제를 해결하며 reverse함수에 대해 제대로 이해
- 스택 개념 이해
728x90
'Algorithm' 카테고리의 다른 글
백준 1874번 : 스택수열(python) (0) | 2021.11.08 |
---|---|
백준 9012번 : 괄호 (python) (0) | 2021.11.07 |
백준 1435번 : 영화감독 숌 (python) (0) | 2021.10.26 |
백준7568번 : 덩치(python) (0) | 2021.10.26 |
백준 2798번 : 블랙잭 c언어 (0) | 2021.10.24 |