https://www.acmicpc.net/problem/9093
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오.
단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다.
단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
문자열을 띄어쓰기로 자른 뒤 각 문자열을 reversed()
로 뒤집고
다른 배열에 다시 집어 놓고 joined()
를 통해 각 원소를 합칠 때 띄어쓰기를 포함하도록 했습니다.
중요한 것은 reversed()를 사용 시 반환 값은 ReversedCollection<Array<Element>>()
이기 때문에 바로 사용하는 것이 아닌 for 문()
을 통하여 각 문자를 출력해주어야 합니다.
let n = Int(readLine()!)!
for _ in 0..<n {
let input = readLine()!.split(separator: " ").map{String($0)}
var arr = [String]()
for i in input {
var temp = ""
for j in i.reversed() {
temp += String(j)
}
arr.append(temp)
}
let result = arr.joined(separator: " ")
print(result)
}