if문, 코드스니펫 설정하기(사용자 입력 코드 자동화), 줄바꿈없이 print하기

인생노잼시기·2021년 4월 29일
0

😨코딩테스트

목록 보기
2/18

map으로 Int변환하기

.map({ Int($0)! })

var read = readLine()

if var read = read{
    var arr =  read.components(separatedBy: " ").map({ (value : String) -> Int in 
    return Int(value)! })
}

if var read = read{
    var arr =  read.components(separatedBy: " ").map({ (value) -> Int in 
    return Int(value)! })
}

if var read = read{
    var arr =  read.components(separatedBy: " ").map({ (value) -> Int in Int(value)! })
}

if var read = read{
    var arr =  read.components(separatedBy: " ").map({ (value) in Int(value)! })
}

if var read = read{
    var arr =  read.components(separatedBy: " ").map({ Int($0)! })
}

if var read = read{
    var arr =  read.components(separatedBy: " ").map() { Int($0)! }
}

코드스니펫 활용하기

입출력은 이제 readline만 치면 알아서 입력된다

코드 드래그 우클릭
Create Code Snippet
Completion: readline
placeholder를 생성하고 싶으면 <#placeholder#>라고 입력하면 된다

print의 속성

seperator

terminator

print(hour, minute, separator: "..")
print(hour, minute, terminator: "..")

separator는 모든 가운데에 ..가 붙고 마지막에 \n이 되었고
terminator는 마지막에만 ..이 붙었다

print는 느리다? joined를 쓰면 조금 빠르다

let array = [String](repeating: "A", count: 1000)

for a in array {
    print(separated, terminator: " ") // slow
}

/////

let separated = array.joined(separator: " ")
print(separated) // a lot quicker, even though we're processing the array beforehand

components와 split의 차이

let nums = readLine()!.split(seperator:" ")  // ["1", "2", "3", "4"]

let nums = readLine()!.components(seperatedBy:" ") // ["1", "2", "3", "4"]

split은 Foundation 프레임워크를 반입하지 않아도 사용할 수 있다.
split으로 쪼개면 리턴값이 [String.SubSequence]다.
components로 쪼개면 리턴값이 [String]이다.
둘 다 map을 사용하면 문자열을 사용할 수 있다.

배열

var empty : [Int] = []
var empty = [Int]()
var empty : Array<Int> = []

var array = Array(1...5) // [1,2,3,4,5]

String, substring, index

let secondIndex = string.index(after: string.startIndex)
let second = string[secondIndex]
let endIndex = string.index(before: str.endIndex)
// n번째 문자 index 구하는 법
let index = string.index(string.startIndex, offsetBy: n-1)
// subString 구하는 법
let substring = string[start...end]
// 문자 검색해서 index 찾기
"abc123".index(firstOf: "c")
// 특정 character replace
string.replacingOccurences(of:" ", with:"+")

Decimal to Int

(decimal as NSDecimalNumber).intValue

부동소수점 NumberFormatter

let formatter = NumberFormatter()
formatter.roundingMode = .down // 내림
formatter.minFractionDigits = 2 // 2자릿수까지만 표현
formatter.maxFractionDigits = 2
let num = formatter.string(from: NSNumber(value: 2.3243254)) // 2.32

진수 표현

// 10진수 -> N진법
String(integer, radix: n)
// N진법 -> 10진수
Int("11100110", radix: n)!

문자를 아스키코드로

Character("a").asciiValue!

스트링 수식 계산하기

let mathExpression = NSExpression(format: "3+4+2-1*6")
let mathValue = mathExpression.expressionValue(with: nil, context: nil) as! Int // result : 3
profile
인생노잼

0개의 댓글