728x90
https://www.acmicpc.net/problem/9086
스위프트는 문자열 다루기가 다른 언어에 비해 좀 불편하다. 하지만 이는 내가 언어를 아직 잘 모르는 것일 수도 있으니 참고 바란다.
문자열 인덱스에 접근할때 막혔던 부분은 endIndex 부분이었다. 이 부분만 적용하면 범위오류가 났기 때문이다.
하지만 이는 내가 endIndex 성질을 잘 몰라서 그런 것이다. endIndex는 마지막 요소를 출력하는 것이 아닌 마지막 요소 다음을 출력하기 때문에 범위 오류가 났던 것이다. 아래 코드를 보면 첫 문자열은 쉽게 뽑을 수 있지만 마지막 문자열은 저렇게 뽑아내야한다.
마지막으로 문자 출력을 할때 서로 연속되게 출력해야하니 separator = ""를 사용해서 문자 하나하나를 다르게 인식하게 했다.
import Foundation
let number = Int(readLine()!)!
var string = ""
for i in 0..<number {
string = readLine()!
print(string[string.startIndex], string[string.index(string.endIndex, offsetBy: -1)], separator: "")
}
또 다른 풀이는 아래와 같이 더 쉽게 접근이 가능하다.
let number = Int(readLine)!)!
for _ in 0..<number {
let input = readLine()!
print(input.first!, terminator: "")
print(input.last!)
}
728x90
'PS' 카테고리의 다른 글
[swift] 2920번 음계 (0) | 2022.12.01 |
---|---|
[Swift] 2884 알람시계 (0) | 2022.11.30 |
11866번 요세푸스 문제 : SWIFT (1) | 2022.10.03 |
10866번 덱 / swift (1) | 2022.10.03 |
10845번 큐 /swift (0) | 2022.10.03 |