본문 바로가기
알고리즘/공부

스위프트로 알고리즘 문제 풀기

by venniek 2022. 5. 10.

원래 C++로 알고리즘 문제를 풀었는데, iOS 개발자가 될 거니까 언어에 익숙해질 겸 이제는 스위프트로 풀려고 한다. 입출력, 자료형 변환 등 C++과 다른 점이 많으니 문제 풀이에 필요한 것들을 정리해보자.

readLine

EOF 기준으로 입력을 받는다. 엔터 치기 전까지를 옵셔널 String으로 입력 받는다. 알고리즘 문제에서는 보통 nil일 경우가 없기 때문에 “!”를 사용해 강제 추출한다.

let value = readLine()!

여러 줄을 받을 때

var values = [String]()
for _ in 0..<N { values.append(readLine()! }
// 또는
for _ in 0..<N { let tmp = readLine()! }

숫자로 받을 때

let intValue = Int(readLine()!)!

한 줄에 숫자 여러 개를 받을 때

// split - return: [SubString]
let values = readLine()!.split(separator: " ").map{ Int($0)! }

// cpmponents - return: [String]
let values = readLine()!.components(separatedBy: " ").map{ Int($0)! }

나는 주로 components 메소드를 사용하고, values[2] 와 같이 인덱스를 이용해 각 원소에 접근한다.

댓글