코딩 테스트를 위한 Swift 문법 정리

Han's·2024년 1월 7일
0

코딩테스트

목록 보기
1/1
post-thumbnail
post-custom-banner

아스키코드

알고리즘을 문제를 풀면서 아스키코드 값을 출력해야 하는 경우 UnicodeScalar를 사용하여 해결할 수 있습니다.

import Foundation

// String -> Ascii
let asciiIntValue = Int(UnicodeScalar("A")!.value)

// Ascii -> String
let result = String(UnicodeScalar(65)!)

print(asciiIntValue)
print(result)

계속 입력받기

계속 입력받아야 하는 경우 While let을 사용하여 입력을 받으면 됩니다.

while let은 주어진 옵셔널 변수나 상수를 반복문 내에서 언래핑하고, 값이 존재하는 동안에만 반복문을 실행합니다.

import Foundation

while let input = readLine() {
    print(input)
}

특수문자 출력하기

문자열 내의 특수한 문자들을 그대로 출력하려면 #을 양 끝에 붙여주면 됩니다.

let bud = #"""
         ,r'"7
r`-_   ,'  ,/
 \. ". L_r'
   `~\/
      |
      |
"""#

print(bud)

Dictionary 초기화

zip은 스위프트의 내장 함수 중 하나로, 두 개 이상의 시퀀스를 조합하여 하나의 새로운 시퀀스를 생성하는 역할을 합니다.

let dic1 = Dictionary(uniqueKeysWithValues: zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ", repeatElement(0, count: 26)))
let dic2 = Dictionary(uniqueKeysWithValues: zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 10...35))

Dictionary 초기값 설정

Dictionary의 value 초기값이 없을 때 default를 사용해서 초기값을 설정해 주면 됩니다.

var dic: [Character: Int] = [:]
let word = readLine()!.uppercased()

word.forEach {
    dic[$0, default: 0] += 1
}

거듭제곱

pow를 사용하여 파라미터로 x에는 밑, y에는 지수를 넣어서 거듭제곱을 계산할 수 있습니다.

let n = Int(readLine()!)!

// 한 변의 사각형 개수: 2, 4, 8, 16, 32 ...
// 점 개수: 3^2, 5^2, 9^2, 33^2 ...
print(pow(pow(2, n) + 1, 2))

진법 변환

radix를 사용하여 진법 변환을 쉽게 할 수 있습니다.

  • n진법 -> 10진법
let nString = "ZZZZZ"
let num = 36

print(Int(nString, radix: num)!)
  • 10진법 -> n진법
let decimal = 60466175
let num = 36

print(String(decimal, radix: num).uppercased())

n진법으로 변환 시 반드시 uppercased를 사용해야 합니다.


💡 알아두면 유용한 지식

1. 삼각형의 세 변의 길이의 조건

삼각형의 결정 조건으로 a + b > c를 만족해야 한다.

profile
🍎 iOS Developer
post-custom-banner

0개의 댓글