문제
영화 스타워즈의 캐릭터 요다처럼 문장의 앞 두 단어를 뒤로 이동시키는 문제다. 입력된 문장의 첫 두 단어를 나머지 단어들 뒤에 붙여 출력한다.
입력
- 첫 줄: 테스트 케이스 수 N
- 이후 N줄: 공백으로 구분된 단어들로 이루어진 문장 (최소 3개 단어 이상)
출력
- 각 문장에 대해 첫 두 단어를 뒤로 보낸 결과 출력
예제
| 입력 | 출력 |
|---|---|
2 Eat it you must It is a trap | you must Eat it a trap It is |
풀이
문장을 단어로 분리한 뒤 앞 두 단어와 나머지를 분리하여 순서를 바꾸어 이어 붙이는 단순 구현 문제다.
- 테스트 케이스 수 N을 입력받는다.
- 각 문장을 공백 기준으로 분리하여 단어 리스트를 만든다.
- 슬라이싱으로 앞 두 단어(
sentence[:2])와 나머지(sentence[2:])를 분리한다. rest + front순서로 합쳐 공백으로 이어 출력한다.
핵심 아이디어: Python 리스트 슬라이싱과 + 연산자를 이용하면 단 두 줄로 앞뒤 재배치가 가능하다. " ".join()으로 단어 사이에 공백을 복원한다.
코드
n = int(input())
for _ in range(n):
sentence = input().split()
front = sentence[:2]
rest = sentence[2:]
new_sentence = rest + front
print(" ".join(new_sentence))복잡도
- 시간: O(W) — 각 문장의 단어 수 W에 대해 선형 처리
- 공간: O(W) — 단어 리스트 저장