[Swift] 코딩테스트를 위한 콘솔 정수 입력받기 (1개, 여러 개)

반응형
반응형

정수 1개 입력받기 

readLine() 메서드로 입력받은 값은 String이기에 Int() 메서드를 사용해 형변환을 진행해 주면 된다. 

단, Int()로 변환한 값은 Int값이 아닌 Int? 이기에! 연산자를 사용해 값을 UnWrapping 해주어야 한다. 

import Swift;

var input = Int(readLine()!)!
print(input)

정수 여러 개 입력받기

결론부터 말하자면 공백을 포함한 정수값을 입력받기 위해서는 아래와 같이 작성해 주면 된다. 

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

 

입력값으로 "1 2 3 4 5"가 들어온 상황을 가정한다.

앞서 말했듯이 readLine() 메서드로 값을 입력받으면 String? Optional값이기에! 연산자를 이용해 값을 Unwrapping 한다.

let pInput = readLine()!
"1 2 3 4 5"

 

split 메서드를 사용해 공백을 기준으로 문자열을 나누어 배열에 저장한다. 

이때 반환값은 [String] 타입 배열이다. 

let pInput = readLine()!.split(separator: " ")
["1", "2", "3", "4", "5"]

 

map을 사용해 배열의 각 요소에 대해 함수를 적용해 기존 문자열 배열을 정수형 배열로 변환시켜야 한다. 

다음으로 Int($0)을 배열 내부의 각 요소에 적용시키면 String 타입의 요소를 Int? Optional 타입 변환을 시도한다.

 예시로 "1"을 Int(1)로 변환하며, "a"와 같은 숫자가 아닌 문자열 값은 nil이 반환된다. 

 

실제 프로덕트 코드라면 안전하게 Nil check를 해주는 것이 바람직하겠지만 코딩테스트 환경에서는 어차피 정수값만 들어올 것이기에 !를 사용해 강제로 언래핑을해준다. 

let pInput = readLine()!.split(separator: " ").map { Int($0)! }
[1, 2, 3, 4, 5]

 

반응형

'IOS Dev > PS With Swift' 카테고리의 다른 글

[Swift] 코테를 위한 콘솔 입출력 정리  (0) 2025.02.12

댓글

Designed by JB FACTORY