[문제]
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
🎨 풀이
💡 전체 코드
import sys
T = int(input())
for _ in range(T):
text = list(map(str,sys.stdin.readline().split()))
result = []
for i in range(len(text)):
string = list(str(text[i]))
string.reverse()
s = "".join(string)
result.append(s)
for i in range(len(result)):
print(result[i], end = ' ')
> 핵심 :
설명을 위한 그림
🍦 코드 설명 (실행 순서대로 나열)
# main
T = int(input())
1. T를 입력받는다.
- T : 테스트 케이스 수
for _ in range(T):
text = list(map(str,sys.stdin.readline().split()))
result = []
2. for문을 T번 반복한다.
3. text를 입력받는다.
# main - 단어 뒤집는 부분
for i in range(len(text)):
string = list(str(text[i]))
string.reverse()
s = "".join(string)
result.append(s)
3. string에 text[i]의 글자를 하나씩 넣는다.
4. string에 있는 글자들의 순서를 거꾸로 뒤집는다.
5. s에 뒤집힌 글자들을 넣어준다.
- join을 이용해서 문자열로 만든다.
6. result에 s를 추가한다.
for i in range(len(result)):
print(result[i], end = ' ')
7. result를 출력한다.
- result에 있는 뒤집힌 단어들을 출력한다.
- end=' ' 이용해서 한 줄에 출력한다.

끝~
⭐ 느낀점
> 이 문제는 쪼꼼 어려웠다. 리스트에서 문자 뒤집는 게 어려웠는데, reverse라는 게 있다는 걸 이번에 처음 알았다. 그래서 덕분에 좀 편하게 푼 것 같긴 한데,, 이게 꼼수인가 살짝 모르겠다잉. 그래도 고생했다.~
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 11557번 - Yangjojang of The Year (파이썬) (0) | 2022.09.11 |
---|---|
[백준] 1550번 - 16진수 (파이썬) (0) | 2022.09.09 |
[백준] 2953번 - 나는 요리사다 (파이썬) (0) | 2022.09.07 |
[백준] 2902번 - KMP는 왜 KMP일까? (파이썬) (0) | 2022.09.06 |
[백준] 2455번 - 지능형 기차 (파이썬) (0) | 2022.09.05 |