[Swift] 입력값 받기

hye0n.gyu·2023년 5월 6일

Swift BOJ

목록 보기
1/15
post-thumbnail

readLine()


입력값을 받을 때 쓰는 readLine() 메소드는 입력값을 받을 때 쓴다.

let input = readLine()!

반환형은 Optional<String> 이다.
백준에서는 보통 Unwrapping을 해준다. 하지만 강제 Unwrapping은 Swift 언어를 사용하며 자제하는 것이 좋다.

Split()


반환형은 SubString 배열을 반환한다.
Split은 값을 쪼개는 역할로 separator, maxSplits, omittingEmptySubsequences 라는 세가지 인자를 갖는다.

2-1.Separator

Character 타입으로, 매개변수를 받아서 해당 인자를 기준으로 쪼개주는 역할을 한다. 즉, Separator에 입력하는 값이 구분자가 된다.
예를 들어 0 2 1 0 3 0 이렇게 공백을 기준으로 받는다면

let input = readLine()!.split(separator: " ")

이렇게 사용하면 되는 것이다.

2-2.maxsplit

Int 타입으로 문자열을 분리하는 횟수이다. separator 인자를 기준으로 몇 번까지 분리하는 최댓값을 설정하는 것이다.

2-3. omittingEmptySubsequences

omittingEmptySubsequences : false의 경우 separator의 인스턴스마다 결과에 빈(empty) 서브 시퀀스를 돌려준다. true의 경우, 비어있지 않은(non-empty)서브 시퀀스만 반환됩니다. 기본값은 true이다.

3.Map()

func map<T> (_ transform: (Element) throws -> T) rethrows -> [T]

map()함수는 입력값을 변형해서 반환을 할 수 있는 함수이다.
Split()은 Substring 배열을 반환하기 때문에 다른 값으로 변형하여 사용하려면 Map()을 사용해야 한다.

예시로 Int형 배열로 사용하고 싶다면

var input = readLine()!.split(separator:" ").map{Int($0)!}

4. Split과 유사한 components


1. 파라미터
split : (separator, maxSplits,
omittingEmptySubsequences)
components :(separatedBy)
components는 separatedBy라는 인자 단 하나만을 가지며 separatedBy는 구분자 역할을 한다는 점에서 separator와 같지만 separator는 Character형이며 separatedBy는 String 형이다
2. 소속
split : 스위프트 표준 라이브러리에 속해있다.
components : Foundation 프레임워크에 속해있다.

  1. 반환 타입이 다르다.
    split : [Substring]
    components: [String]
profile
반려묘 하루 velog

0개의 댓글