🚩 문제 설명
https://www.acmicpc.net/problem/9093
⏱️ 시간 복잡도
▪️ 테스트 케이스의 갯수인 T가 주어진다.
▪️ 단어의 길이는 최대 20이다.
▪️ 문장의 길이는 최대 1000이다. 즉 한 문장에 있는 단어의 수는 50개를 넘지않는다.
▪️ 즉 시간복잡도는 O( T x 50 ) 이라고 볼 수 있다.
▪️ 따라서 O( N x N ) 이라고 볼 수도 있음.
◾ 문장이 주어지고 문장의 각 단어를 뒤집어서 출력하는 프로그램을 작성
◾ 단어의 순서는 바꿀 수 없다.
◾ 단어는 영어 알파벳으로만 이루어져 있다.
✅ 입출력
1) 테스트 케이스의 갯수
2) 두번째 줄 부터 단어가 뒤집어질 문장
return ➡️ 문장의 각 단어를 뒤집어서 반환
✔️ 예제 1
2
I am happy today
We want to win the first prize
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp
📑 문제 풀이
with 파이썬 (Python)
N = int(input()) # 테스트 케이스 갯수
sen = [input() for _ in range(N)] # 문장 저장 배열
for s in sen:
splited = s.split()
for sp in splited:
print(''.join(reversed(sp)), end=' ')
print()
💬 Point
➡️ reversed() 함수 사용
➡️ ''.join(문자열) 함수 사용
➡️ end = ' ' 를 이용하여 띄어진 단어들을 붙여줬다.
◾ 사실 reversed 말고 list.reverse()를 쓰면 더 좋았을 것 같긴 함.
◾ reversed() 함수는 reversed 객체를 반환한다.
- 그래서 print 로 찍어보면 위치가 찍힘.
◾ reversed 객체를 list로 변환해주려면 list(reversed) 이런식으로 사용하면 된다.
- 문자열로 사용하려면 굳이 list() 할 필요 없이 join() 함수로 연결해주면 된다.
◾ 필자는 두번의 반복문을 돌렸다.
- 첫번째는 문장을 도는 반복문
- 두번째는 문장의 각 단어를 도는 반복문
◾ 그리고 각 단어들을 join 함수를 이용하여 붙여줬다.
- ['W', 'e'] ➡️ We 이런식으로 붙여줬음.
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 백준 알고리즘' 카테고리의 다른 글
[자료구조] [BJ10845] 큐 (0) | 2021.11.24 |
---|---|
[자료구조] [BJ1406] 에디터 (0) | 2021.11.24 |
[자료구조] [BJ9012] 괄호 (0) | 2021.11.23 |
[자료구조] [BJ10828] 스택 (0) | 2021.11.23 |
[BJ1874] 스택 수열 (0) | 2020.01.17 |