[자료구조] [BJ9093] 단어 뒤집기
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/백준 알고리즘

[자료구조] [BJ9093] 단어 뒤집기

코드 플러스

🚩 문제 설명

https://www.acmicpc.net/problem/9093

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

BJ9093

⏱️ 시간 복잡도
▪️ 테스트 케이스의 갯수인 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