상세 컨텐츠

본문 제목

Swift for Coding Interview - 입출력과 자주 쓰이는 프로퍼티를 중심으로

Swift for Coding Interview

by 앱등개발자IOS 2022. 5. 21. 20:42

본문

# Swift의 입출력

-> python과 같이 print()는 default로 줄바꿈으로 끝낸다.

python pring(~~ , end = " ")는 swift에서 print(~~ , terminator: " ")로 print()의 마무리를 설정할 수 있다.

-> 위와 같이 입력은 readLine()로 받을 수 있다. 

  Optional로 감싸져 나오므로 언래핑해서 사용해야함을 주의! 

 

# Swift의 형변환

 

readLine()으로 입력받은 Optional<String> 타입을 언래핑 후 Int형으로 형변환 하였다.

형변환 시 Optional로 래핑됨을 주의!

String을 Int로

# Swift의 배열 생성 (원소 반복)

 

python에서는 arr = [0] * (n+1) 과 같이 1차원 배열에 "0"을 반복하여 생성하고,

arr = [[0] * (m) for _ in range(n)] 과 같이 n x m 크기의 2차원 배열을 생성한다.

비슷하게 Swift에서는 repeating:과 count:에 각각 반복할 원소와 횟수를 적어준다.

위와 같이 1, 2차원 배열을 원하는 원소로 반복하여 초기화할 수 있다.

 

##하이라이트!! Swift의 split과 배열 생성

코딩 인터뷰 알고리즘 문제를 풀다보면, 입출력 코드를 작성해야하는 경우가 있다.

python 에서는 arr = list(map(int, input().split())) 과 같이 "공백"을 기준으로 split하여 배열 arr에 저장할 수 있었다.

n, m = map(int, input().split(","))과 같이 ','를 기준으로 나누어 "정수"로 형 변환 후 각각 n과 m에 할당해줄 수도 있었다.

 

지금까지 공부한 바로는 swift에서는 위의 두가지 경우 중, 전자와 같이 

1. array에  저장

2. index로 접근해 사용 

하는 것이 최선인 것 같다. ( 한 줄로 n,m,...등 여러 변수에 각각 할당하기보다 )

 

코드는 python과 비슷하다.

주의할 점은 split()했을 때 배열안에 담긴 값들의 type이 Substring이 된다는 것이다.

이를 map 고차함수를 사용하여 Int로 형변환이 가능하지만, Int(String($0))과 같이 String으로 변환 후 Int로 형변환 하는 것이 더 빠르다고 들었다.

 

# 인접행렬로 Graph를 나타내고싶은 경우!! Swift의 비어있는 n개의 배열 생성

 

# 배열 속 최대, 최솟값 Swift의 프로퍼티로 얻어올 수 있다~ 

 

아래와 같이 max, min() 메서드만으로 불러오면 Optional()로 래핑되어있으므로, 

Optional로 래핑된 모습

반드시 !로 unWrapping하여 사용하도록 하자!

 

관련글 더보기