Algorithms/코테 문풀
[백준 9093번] 단어 뒤집기
hi-rachel
2023. 8. 13. 17:51
문제
https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
풀이
- 처음 풀이
T = int(input())
for _ in range(T):
statement = input().split()
result = ""
for word in statement:
result += ''.join(reversed(word)) + ' '
print(result)
방금 전 반복해서 여러 개를 입력받아야 하는 상황에서는 sys.stdin.readline()을 써야 한다는 글을 쓰고 바로 풀때 input()을 써버렸다..
2023.08.13 - [Algorithms/코테 문풀] - [백준 10828번] 스택
[백준 10828번] 스택
문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같
hi-rachel.tistory.com
- 수정한 코드
import sys
input = sys.stdin.readline
for _ in range(int(input())):
word = input().split()
print(' '.join(word[::-1])[::-1])
단계별로 살펴보면 아래와 같은 과정으로 뒤집어진다.
중간에 list를 string으로 합쳐주고 전체를 다시 뒤집는 게 중요하다.
import sys
input = sys.stdin.readline
for _ in range(int(input())):
word = input().split()
print(word[::-1]) # ['today', 'happy', 'am', 'I'] 문장 전체 뒤집기
print(' '.join(word[::-1])) # today happy am I 공백 하나로 연결
print(' '.join(word[::-1])[::-1]) # I ma yppah yadot 다시 문장 전체 뒤집기
참고
백준