[Bronze II] 단어순서 뒤집기 - 12605 [문제 링크](https://www.acmicpc.net/problem/12605)
성능 요약 메모리: 31120 KB, 시간: 32 ms
분류 자료 구조, 파싱, 스택, 문자열
제출 일자 2024년 11월 10일 09:27:37
문제 설명
스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.
입력
첫 행은 N이며, 전체 케이스의 개수이다.
N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.
- N = 5
- 1 ≤ L ≤ 25
출력
각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.
<내 코드>
import sys
N = int(sys.stdin.readline())
for _ in range(N):
words = sys.stdin.readline().split()
reverse_words = words[::-1]
answer = " ".join(reverse_words)
sys.stdout.write("Case #" + str(_+1) +": " + answer + "\n")
- 스택으로 안풀어서 아쉬운것은 있지만 단지 손쉽게 append(), pop으로 얼마든지 가능하리라 생각이 듬
- F""를 안
<모범사례>
- 일반적인 리스트 슬라이싱 방식
import sys
N = int(sys.stdin.readline().strip())
for i in range(1, N + 1):
words = sys.stdin.readline().strip().split()
reversed_words = " ".join(words[::-1])
print(f"Case #{i}: {reversed_words}")
- 스택 / 큐 방식
import sys
N = int(sys.stdin.readline().strip())
for i in range(1, N + 1):
words = sys.stdin.readline().strip().split()
# 스택에 모든 단어를 push
stack = []
for word in words:
stack.append(word)
# 스택에서 단어를 pop하여 역순으로 저장
reversed_words = []
while stack:
reversed_words.append(stack.pop())
# 출력 형식에 맞춰 결과 출력
print(f"Case #{i}: {' '.join(reversed_words)}")
<보충학습>
sys.stdout.write(f"Case #{_ + 1}: {answer}\n")
- 이런 방식으로 f-string 이용이 가능함
앞에다가 f"" 이렇게 이용하면됨
'문제풀이 > 일일연습문제' 카테고리의 다른 글
[스택/큐]99클럽 코테 스터디 15일차 TIL + 프로그래머스/1/12906. 같은 숫자는 싫어 (0) | 2024.11.12 |
---|---|
[스택/큐]99클럽 코테 스터디 14일차 TIL + 백준/Bronze/10845. 큐 (0) | 2024.11.11 |
[스택/큐]99클럽 코테 스터디 12일차 TIL + 백준/Silver/10828. 스택 (0) | 2024.11.09 |
[hash]99클럽 코테 스터디 11일차 TIL + 프로그래머스/1/42576. 완주하지 못한 선수 (0) | 2024.11.08 |
[hash]99클럽 코테 스터디 10일차 TIL + 프로그래머스/1/1845. 폰켓몬 (0) | 2024.11.07 |