Top 36 Swift 코딩 테스트 Quick Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me swift 코딩 테스트 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: swift 코딩 테스트 카카오 ios 코딩테스트, swift 코딩테스트 문법, Swift 알고리즘, Swift 코딩, iOS 코딩, 코딩테스트 후기, iOS 사전과제, Swift 알고리즘 문제


대기업 IT직군 코딩테스트 합격을 위한 현실적이고 직관적인 공부 순서
대기업 IT직군 코딩테스트 합격을 위한 현실적이고 직관적인 공부 순서


[iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리

  • Article author: velog.io
  • Reviews from users: 5677 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리 코딩테스트를 스위프트로 준비하면서 자주 검색하거나 사용하는 문법들을 정리해보려 합니다. 계속 추가하고 수정할 예정입니다. …
  • Most searched keywords: Whether you are looking for [iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리 코딩테스트를 스위프트로 준비하면서 자주 검색하거나 사용하는 문법들을 정리해보려 합니다. 계속 추가하고 수정할 예정입니다. swift 알고리즘, 코딩테스트 tip 정리
  • Table of Contents:
[iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리
[iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리

Read More

[Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문

  • Article author: chanhhh.tistory.com
  • Reviews from users: 27802 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문 [Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문. 찬히히 2021. 9. 2. 17:52 … …
  • Most searched keywords: Whether you are looking for [Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문 [Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문. 찬히히 2021. 9. 2. 17:52 … 알고리즘 코딩 테스트를 위한 Swift 요약 정리 입력(Input) Line 단위로 읽어오기. 1 let value = readLine() Line단위로 읽어오는데, 공백(Space)으로 구분되어 있는 입력 ex) Input = 1 2 3 4 1 2 let nums..
  • Table of Contents:
[Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문
[Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문

Read More

Swift – 테크 피드 | 프로그래머스

  • Article author: career.programmers.co.kr
  • Reviews from users: 38190 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Swift – 테크 피드 | 프로그래머스 면접 중에 받았던 Swift 관련 질문 중 괜찮다고 생각했던 것들을 모아봤습니다. … 요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 … …
  • Most searched keywords: Whether you are looking for Swift – 테크 피드 | 프로그래머스 면접 중에 받았던 Swift 관련 질문 중 괜찮다고 생각했던 것들을 모아봤습니다. … 요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 … 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.코딩 교육, 코딩, 프로그래밍, 실습, 생활코딩, 알고리즘
  • Table of Contents:
Swift - 테크 피드 | 프로그래머스
Swift – 테크 피드 | 프로그래머스

Read More

Swift 언어 코딩테스트, 입문 전 유용한 팁 정리

  • Article author: 0urtrees.tistory.com
  • Reviews from users: 49402 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Swift 언어 코딩테스트, 입문 전 유용한 팁 정리 안녕하세요 iOS Developer, 멍구입니다. 요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 언어를 제한하는 경우 … …
  • Most searched keywords: Whether you are looking for Swift 언어 코딩테스트, 입문 전 유용한 팁 정리 안녕하세요 iOS Developer, 멍구입니다. 요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 언어를 제한하는 경우 … 안녕하세요 iOS Developer, 멍구입니다. 🤗 요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 언어를 제한하는 경우가 많아지는 추세인데요. 그런만큼, Swift언어로 코딩테스트 준..
  • Table of Contents:

티스토리 뷰

Swift언어를 지원하는 코딩테스트 플랫폼

String 타입 처리에 신경쓴다

강제언래핑을 활용한다

Array Set Dictionary + 그 외 자료구조 다루는 연습을 한다

클로져(고차함수) 메서드를 활용한다

티스토리툴바

Swift 언어 코딩테스트, 입문 전 유용한 팁 정리
Swift 언어 코딩테스트, 입문 전 유용한 팁 정리

Read More

swift 코딩 테스트

  • Article author: www.yagom-academy.kr
  • Reviews from users: 32240 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about swift 코딩 테스트 Swift. 취업준비. 안녕하세요, 야곰 아카데미의 cozy 입니다. 오늘은 지난 3월 19일에 처음으로 열린. ‘야곰 테크캐스트’의 ‘iOS 개발자 코딩테스트’ … …
  • Most searched keywords: Whether you are looking for swift 코딩 테스트 Swift. 취업준비. 안녕하세요, 야곰 아카데미의 cozy 입니다. 오늘은 지난 3월 19일에 처음으로 열린. ‘야곰 테크캐스트’의 ‘iOS 개발자 코딩테스트’ …
  • Table of Contents:
swift 코딩 테스트
swift 코딩 테스트

Read More

Swift 코딩 테스트 준비 – Java to Swift 😱

  • Article author: haningya.tistory.com
  • Reviews from users: 665 ⭐ Ratings
  • Top rated: 3.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Swift 코딩 테스트 준비 – Java to Swift 😱 Swift 코딩 테스트 준비 – Java to Swift. HaningYa 2020. 7. 1. 00:50. 320×100 … 오늘 안내 메일을 받았는데 세상에나 Swift 언어만 지원한다고 한다. …
  • Most searched keywords: Whether you are looking for Swift 코딩 테스트 준비 – Java to Swift 😱 Swift 코딩 테스트 준비 – Java to Swift. HaningYa 2020. 7. 1. 00:50. 320×100 … 오늘 안내 메일을 받았는데 세상에나 Swift 언어만 지원한다고 한다. 이번에 하계 인턴을 위한 코테를 칠 예정이다. 오늘 안내 메일을 받았는데 세상에나 Swift 언어만 지원한다고 한다. iOS직군이라 그런것 같으나 언어 제한을 둘 줄은 몰랐다. 평소에 Swift로 슬슬 풀어볼까 생각..
  • Table of Contents:

문자열 – 가운데 수 찾기

Set – 숫자외 포함 유무

String – Int 변환 시

String 배열에서 특정 문자열을 찾고 싶을 때

문자열 에서 첫글자 없앨 때

문자열 정렬 && 문자열 첫글자 없애기

for loop 반대로 iterate

struct는 아닌데 몇 가지 변수 포함하는 배열과 정렬

Dictionary

소숫점 올림 반올림

태그

관련글

댓글1

공지사항

최근글

인기글

최근댓글

태그

전체 방문자

티스토리툴바

Swift 코딩 테스트 준비 - Java to Swift 😱
Swift 코딩 테스트 준비 – Java to Swift 😱

Read More


See more articles in the same category here: Chewathai27.com/to/blog.

[iOS] swift 알고리즘, 코딩테스트에 필요한 tip 정리

코딩테스트를 스위프트로 준비하면서 자주 검색하거나 사용하는 문법들을 정리해보려 합니다. 계속 추가하고 수정할 예정입니다.

기본 입력 받기

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

“1 2 3 4 5″와 같은 공백 있는 숫자 입력 받기

var nums = readLine ( ) ! . split ( separator : ” ” ) . map { Int ( $ 0 ) ! } var nums = readLine ( ) ! . components ( separatedBy : ” ” ) . map { Int ( $ 0 ) ! } array . append ( ( file . readInt ( ) , file . readInt ( ) ) )

“12345”와 같은 공백 없는 숫자를 배열로 입력 받기

var nums = Array ( readLine ( ) ! ) . map { Int ( String ( $ 0 ) ) ! } var nums = Array ( readLine ( ) ! ) . map { String ( $ 0 ) } let nums = [ file . readInt ( ) , file . readInt ( ) ]

입력값 시간초과 -> fread의 swift 버전 (라이노님 FileIO)

github

보통 입출력이 10~20만 줄 넘어가면 쓰는걸 추천

xcode 터미널에서 엔터가 아닌 EOF를 입력해야 입력 완료가 된다. 터미널에서 값을 입력한 뒤 제일 마지막에 Ctrl + D를 입력하면 출력값이 나온다.

subString

let startIdx : String . Index = str . index ( str . startIndex , offsetBy : 3 ) var result = String ( str [ startIdx . . . ] ) let endIdx : String . Index = str . index ( str . startIndex , offsetBy : 3 ) var result = String ( str [ . . . endIdx ] )

문자열에 특정 문자 바꾸기

let str = “ung!chun!” let str2 = str . replacingOccurrences ( of : “!” , with : “?” ) print ( str2 )

개행없는 print

print ( “Hello” , terminator : “” )

forEach

let nums : [ Int ] = [ 1 , 2 , 3 , 4 ] nums . forEach { print ( $ 0 ) }

절대값

abs ( – 11 )

제곱

let value = 3.0 pow ( value , 2 )

자릿수 더하기

String ( n ) . map { String ( $ 0 ) } . reduce ( 0 ) { $ 0 + Int ( $ 1 ) ! }

배열 요소에 접근하기

var array = [ 1 , 2 , 3 , 4 , 5 ] array [ 1 . . . 3 ]

배열에 요소 추가하기

var array = [ 1 , 2 , 3 ] array . append ( 4 ) array . append ( contentsOf : [ 5 , 6 , 7 ] )

배열에 원하는 값 index 찾아서 삭제하기

if let index = array . firstIndex ( where : { $ 0 == value } ) { array . remove ( at : index ) }

1차원 배열 선언

let arr = [ Int ] ( ) let arr = Array ( repeating : 0 , count : 5 ) let arr = [ Int ] ( repeating : 0 , count : 5 )

2차원 배열 선언

let arr = [ [ Int ] ] ( ) let arr = Array ( repeating : Array ( repeating : 0 , count : 3 ) , count : 5 ) let arr = [ [ Int ] ] ( repeating : [ Int ] ( repeating : 0 , count : 3 ) , count : 5 )

map

var string = [ “1” , “2” , “3” , “4” ] string . map { Int ( $ 0 ) ! }

filter

var array = [ 1 , 2 , 3 , 4 ] array . filter { $ 0 % 2 == 0 }

reduce

var array = [ 1 , 2 , 3 , 4 ] array . reduce ( 0 , + )

joined()

var brands = [ “Dell” , “HP” , “Apple” ] var result1 = brands . joined ( ) var result2 = brands . joined ( separator : ” ” ) var result3 = brands . joined ( separator : “, ” )

flatMap(), compactMap()

let array1 = [ 1 , nil , 3 , nil , 5 , 6 , 7 ] let flatMapTest1 = array1 . flatMap { $ 0 } let compactMapTest1 = array1 . compactMap { $ 0 }

1차원 배열에서는 둘 다 동일한 결과를 나타내지만 Swift 4.1 부터는 1차원 배열에서 nil을 제거하고 옵셔널 바인딩을 하고싶을때는 flatMap 말고 compactMap을 사용하라고 한다.

let array2 : [ [ Int ? ] ] = [ [ 1 , 2 , 3 ] , [ nil , 5 ] , [ 6 , nil ] , [ nil , nil ] ] let flatMapTest2 = array2 . flatMap { $ 0 } let compactMapTest2 = array2 . compactMap { $ 0 }

flatMapt과 compactMap은 nil을 제거하지않고 1차원 배열일때만 nil 제거

flatMap은 2차원배열을 1차원배열로 flatten 하게 만들어주는 반면, compactMap은 1차원 배열로 만들지 않습니다. -> 2차원 배열을 1차원으로 만들때는 flatMap 사용

let array2 : [ [ Int ? ] ] = [ [ 1 , 2 , 3 ] , [ nil , 5 ] , [ 6 , nil ] , [ nil , nil ] ] let flatMapTest2 = array2 . flatMap { $ 0 } . compactMap { $ 0 }

flatMap 으로 flatten 하게 만들고 compactMap 으로 처리하면 편하게 2차원 배열을 옵셔널 바인딩 한 1차원 배열로 출력 가능

let array3 = [ [ [ 1 ] , [ 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 , 10 ] ] ] let flatMapTest3 = array3 . flatMap { $ 0 } let doubleflatMapTest3 = flatMapTest3 . flatMap { $ 0 }

3차원 배열도 flatMap 2번 사용하면 flatten 하게 처리 가능

Set

정렬되지 않은 컬렉션

중복 허용 x

해시를 통해 값을 저장해서 배열에 비해 검색 속도가 빠르다. (저장되는 자료형은 Hashable 프로토콜 준수해야함)

var tempSet : Set < Int > = [ ] var tempSet = Set < Int > ( ) var tempSet : Set < Int > = [ 1 , 2 , 5 , 0 ] let count : Int = tempSet . count let isEmpty : Bool = tempSet . isEmpty tempSet . contains ( 1 ) tempSet . contains ( 10 ) tempSet . insert ( 1 ) tempSet . insert ( 10 ) tempSet . update ( with : 1 ) tempSet . update ( with : 120 ) tempSet . remove ( 1 ) tempSet . remove ( 10 ) tempSet . removeAll ( )

dictionary

var dict : [ String : Int ] = [ : ] var dict = [ String : Int ] ( ) let count : Int = dict . count let isEmpty : Bool = dict . isEmpty var dict = [ “height” : 165 , “age” : 100 ] let height = dict [ “height” ] let weight = dict [ “weight” ] dict [ “weight” ] = 100 dict [ “height” ] = 200 dict [ “weight” ] = nil dict [ “height” ] = nil dict . removeAll ( ) dict . keys dict . keys . sorted ( ) dict . values dict . values . sorted ( ) dict . sorted ( by : { $ 0 . value > $ 1 . value } ) dict . filter ( condition ) var v = [ [ Int ] ] ( ) var xDic = [ Int : Int ] ( ) xDic [ v [ i ] [ 0 ] ] let x = xDic . filter { $ 0 . value < 2 } . keys ans . append ( contentsOf : xDic . values . filter { $ 0 < 2 } ) 2차원 배열 정렬하기 var arr = [ [ 0 , 3 ] , [ 1 , 9 ] , [ 2 , 6 ] ] let sortedArray = arr . sorted ( by : { $ 0 [ 1 ] < $ 1 [ 1 ] } ) let sortedArray = arr . sorted ( by : { $ 0.1 < $ 1.1 } ) print ( sortedArray ) init (repeating: count: ) let watermelon4 = String ( repeating : "수박" , count : 4 ) print ( watermelon4 ) let liar = Array ( repeating : false , count : 5 ) print ( liar ) 배열안에 담긴 숫자만큼 일일이 print하면 매번 print하는 것도 상당히 느리기때문에 시간초과 되는 경우가 많은데 String - init ( repeating: count: ) 로 한번에 만들어서 String에 저장해서 출력하면 시간초과를 막을 수 있다. -> 수 정렬하기 3 참고

var answer = “” answer + = String ( repeating : ” \( value )

” , count : countValue ) answer + = String ( repeating : ” \( value ) ” , count : countValue ) answer + = String ( repeating : ” \( value ) ” , count : countValue ) print ( answer )

최대공약수, 최소공배수

func GCD ( max : Int , min : Int ) – > Int { let remain = max % min if remain == 0 { return min } else { return GCD ( max : min , min : remain ) } } func LCM ( max : Int , min : Int ) – > Int { return max * min / GCD ( max : max , min : min ) }

heap / 우선순위 큐

[Swift]Swift 요약 정리

Line 단위로 읽어오기.

Line단위로 읽어오는데, 공백(Space)으로 구분되어 있는 입력

ex) Input = 1 2 3 4

1 2 let nums = readLine() ! .split(seperator: ” ” ) // String.SubSequence Type [map]으로 커버 가능 let nums = readLine() ! .components(seperatedBy: ” ” ) // String Type [import Foundation] 필수.

입력을 split을 사용하여 받아온다면 mapping으로 변수를 사용할 수 있다.

다른 방법으로는 components를 사용하는 방법이 있는데, components는 foundation의 instance method이므로 이를 사용하려면 import Foundation 해주어야 한다.

Int값으로 바로 읽어오기

1 let n: Int = Int (readLine() ! ) ! Maping할때 Int값으로 바로 읽어오기

String.subsequence -> Int 형변환 보다

String.subsequence -> String -> Int 형변환이 더 빠르다. (입력에서 시간초과 난다 싶으면 사용)

1 let numb: [ Int ] = readLine() ! .split(separator: ” ” ).map { Int ( String ($0)) ! }

배열(Array)

Swift 언어 코딩테스트, 입문 전 유용한 팁 정리

728×90

반응형

안녕하세요 iOS Developer, 멍구입니다. 🤗

요즘들어 많은 기업들이 iOS 직군에 대해서 코딩테스트 진행 시, Swift언어로 사용 언어를 제한하는 경우가 많아지는 추세인데요. 그런만큼, Swift언어로 코딩테스트 준비를 하는 분들이 늘어나고 있는 것 같습니다.

그래서 이참에, 제가 Swift언어로 코딩테스트를 준비해오면서 느꼈던, 입문할때 알아두면 좋은 사항들을 정리해보려고 합니다. 바로 시작해보겠습니다! 🤗

Swift언어를 지원하는 코딩테스트 플랫폼

프로그래머스

Programmers Logo

국내 대기업에서 사용하는 코딩테스트 플랫폼은 대부분이 부분적으로 Swift언어를 지원합니다.

그 중 국내 대기업에서 단연 가장 많이 사용되는 플랫폼은 프로그래머스입니다. 프로그래머스는 쿠팡, 네이버, 카카오, 기타 IT대기업 공채에서 가장 많이 활용하는 코딩테스트 플랫폼 중 하나입니다. 국내에서 가장 많이 활용되는 플랫폼인 만큼 대부분의 알고리즘 문제에서 Swift를 지원합니다. 다만, 일부 DP 등의 문제는 Swift을 지원하지 않는 점 참고하시기 바랍니다.

가장 많이 활용되는 코딩테스트 플랫폼인 만큼, 프로그래머스에서 고득점킷과 1~3단계 문제는 가능한 많이 풀어두시는 것을 추천드립니다.

해커랭크, 코딜리티, LeetCode

HackerRank, Codility page

그 다음으로는 코딩테스트 플랫폼, 코딜리티와 해커랭크가 있습니다. 이 두 플랫폼은 해외 플랫폼인데요. 네이버, 카카오 등의 수시채용에 지원 시 코딩테스트 플랫폼으로 보실 수 있습니다.

해커랭크, 코딜리티에서는 프로그래머스 처럼 연습문제를 단계별로 풀 수 있으며, 거대한 커뮤니티도 형성되어 있어 코딩테스트 준비에 좋은 플랫폼이라고 생각합니다. 당연하게도 Swift 언어를 지원합니다.

LeetCode 또한 해외 플랫폼으로, 커뮤니티도 크고 연습용으로 좋은 다양한 문제들이 많이 있습니다. 또한 대부분의 연습문제가 Swift언어를 지원하고 있으니 활용하시면 좋을 것 같습니다.

구름(goorm)

goorm 로고

구름 플랫폼은 국대 소프트웨어 마에스트로 출신 수료생 분께서 만든 코딩테스트 플랫폼인데요.

NHN공채, 토스, 소프트웨어마에스트로, 등에서 해당 플랫폼으로 코딩테스트를 진행한 적이 있습니다.

구름 또한 프로그래머스 처럼 연습문제를 제공하니 참고하시면 좋을 것 같습니다. 프로그래머스 처럼 연습문제에 따라 Swift를 지원하는 경우도, 지원하지 않는 경우도 있습니다.

구름 연습문제는 백준처럼 입력까지 직접 구현해야 하는 경우가 있다는 특징이 있습니다.

백준(BOJ)

백준 알고리즘 사이트 로고

백준 알고리즘 사이트는 사실 코딩테스트만의 목적을 가진 플랫폼은 아니지만, 국내 현존하는 알고리즘 사이트 중 가장 풍부한 문제 리소스를 보유하고 있어 좋은 연습환경을 제공합니다.

프로그래머스의 고득점 킷 문제를 푼 뒤 이와 관련된 문제를 복습삼아 더 풀고 싶을 때, 백준알고리즘 사이트의 분류별 문제를 찾아 풀 수 있습니다. Swift 언어 또한 5.0 이상의 환경을 지원하고 있어 유용합니다.

다만, Swift언어를 사용하는 사람이 적어선지, 일부 백준 알고리즘 문제에서는 Swift언어에 대한 시간 보정이 되어있지 않는 경우가 종종 있으니 참고하시기 바랍니다.

저는 프로그래머스 고득점 킷 > 프로그래머스 2단계까지 풀기 > 프로그래머스 3단계 풀기 > 백준 ~ LeetCode, 해커랭크, 코딜리티를 활용하면서 코딩테스트를 준비했던 기억이 있는데요.

본인의 페이스, 목표에 맞게 위에 상기한 코딩테스트 플랫폼을 골고루 활용하시면 좋을 것 같습니다. 👍🏼

String 타입 처리에 신경쓴다.

Swift의 문자열을 다룰 때, C++의 문자열과 같은 개념으로 접근하시면 안됩니다.

애초에 기본적으로 String은 일반적인 정수형 인덱스로 첨자접근이 가능한 배열(랜덤 접근 컬렉션)과 다른 구조인 양방향컬렉션으로 되어있습니다.

String.Index 타입으로 첨자접근 시 그 시간 복잡도는 O(N)가 됩니다. 또한 String 타입의 길이를 체크하는 count 프로퍼티의 경우도 그 시간 복잡도는 O(N)이 됩니다.

왜 이렇게 되는지는 제가 이전에 작성한 포스팅을 참고바랍니다. ▼

이러한 문자열 처리 상 비효율성을 보완하기 위해 상황에 따라 Array 타입으로 변경(String -> [Chracter] 혹은 [String])해서 첨자접근을 활용할 수 있습니다.

Array타입은 C++와 유사하게 첨자접근이 가능하며, 접근 간 복잡도는 O(1)이기 때문이죠. 특이 문자열 내의 문자 접근이 다수 발생한다면 문자열 처리 방식에 따른 효율성은 크게 차이가 날 수 있습니다.

String 내에 있는 문자의 타입은 Character라는 점도 참고해서 Character, String의 특성과 기능도 숙지해두는것이 좋습니다.

또한 대다수의 코딩테스트 문제에서 문자열 처리 문제는 빈출대상이기 때문에 더욱 신경쓰는 것이 좋습니다.

강제언래핑을 활용한다.

강제언래핑은 스위프트 언어에서 String? 타입과 같은 옵셔널 타입을 강제로 벗겨내어 사용할 때 쓰는 것이죠.

실무에서는 해당 값이 없을경우(nil) 런타임 에러를 야기하기에 지양하는 문법이지만, 알고리즘 문제에서 보통 입력값은 구체적인 값이 주어지고 그에 따른 결과값을 반환하도록 요구하는 경우가 많습니다.

이런 경우에는 ! 를 통해 강제 언레핑을 해서 코드양을 줄이고, 시간관리를 하는 것이 좋을 수 있습니다. (다 풀고 여유가 된다면 옵셔널 바인딩을 통한 안전한 접근방식을 고려해볼 수도 있겠지만)

위의 경우, 입력값을 숫자로 변환하는 과정인데요.

문제에서 무조건 숫자가 입력으로 들어온다고 한다면, 강제언래핑을 통해 readLine()으로 반환받는 String? 타입을 -> String 타입으로, String 타입을 -> Int 타입으로 변환하는 작업을 단 한줄로 해결할 수 있습니다. (입력이 더욱 자주 발생한다면 해당 입력을 클로져로 정의해서 재사용할 수도 있습니다.)

예를들면, Swift에서 입력을 받을때 사용하는 readLine()은 String? 타입을 반환하는데요. 이는 입력 받지 않을 경우, nil을 반환하기 때문입니다. 만약 문제에서 무조건 입력이 있음을 보장한다면, let input = readLine()! 과 같이 단 한줄로 입력값을 받을 수 있습니다.

readLine()으로 알고리즘 문제 입력받는 방법▼

Array, Set, Dictionary + 그 외 자료구조 다루는 연습을 한다.

스위프트의 3대장(?) 자료구조는 Array, Set, Dictionary가 있습니다. 이들에 대한 숙지를 해두는 것은 필수겠죠.

또한 스위프트의 단점이라면, Heap / Stack / Queue 등을 지원하지 않는 다는 점이 있는데요. 이런 부분도 스위프트 언어 상에서 어떻게 대응할 지 고민해두는 것이 좋습니다.

– 가령, Heap은 Swift에서 기본적으로 제공하지 않으므로, 대신 이진탐색을 활용하거나 직접 구현해야 합니다.

– Stack은 배열의 append(), removeLast()를 활용하는 식으로(push/pop) 구현할 수 있습니다.

– Queue는 일반 배열과 커서 값을 활용해서 Queue에 근사한 성능을 유도할 수도 있습니다.

배열큐로 실제 큐와 유사하게 활용하는 예시▼

이런 부분을 스위프트 특성에 맞게 준비해 두는 것은 Swift언어로 코딩테스트를 하는 분들에게 필수가 되겠습니다.

클로져(고차함수), 메서드를 활용한다.

Swift언어는 객체지향 프로그래밍 뿐만 아니라 함수형 프로그래밍을 지향하는 멀티 패러다임 언어입니다.

그런만큼, 다양한 고차함수, 메서드를 지원하며, 이들을 활용하면 보다 직관적이로 간결하게 문제를 풀 수 있습니다. 그러므로, 고차함수의 활용에도 관심을 갖는 것이 좋습니다.

reversed(), sort(), sorted(), enumerated(), reduce(into:), map(), compactMap(), split(separator:), components(separatedBy:) 등 다양한 고차함수, 메서드들을 자주 접하고, 활용 및 연습하시면 좋습니다.

Swift 언어 코딩테스트 입문 전 미리 알아두면 좋을 유용한 팁을 정리해봤습니다.

그 외에 기타 의견이나 질문이 있으면 언제든 댓글 남겨주시면 되겠습니다. 즐거운 하루 되세요! 👩🏻‍💻

728×90

반응형

So you have finished reading the swift 코딩 테스트 topic article, if you find this article useful, please share it. Thank you very much. See more: 카카오 ios 코딩테스트, swift 코딩테스트 문법, Swift 알고리즘, Swift 코딩, iOS 코딩, 코딩테스트 후기, iOS 사전과제, Swift 알고리즘 문제

Leave a Comment