swift-algorithm
눈물이 차올라서 고갤 들어..
알고리즘 정리
Union Find
Dynamic Programming
자주 사용되는 문법
1. for문 거꾸로 돌리기
0...n의 반대
for i in stride(from: n, to: 0, by: -1) {
print(i)
}
// 5 4 3 2 1
for i in stride(from: n, to: 0, by: -1) {
print(i)
}
// 5 4 3 2 1 0
2. 배열
1차원 배열 초기화
let array = Array(repeating: 0, count: 5)
print(array)
// [0, 0, 0, 0, 0]
2차원 배열 초기화
var blocks: [[Int]] = Array(repeating: Array(repeating: 0, count: width), count: height)
// width 5, height 3 라고 가정
// [[0, 0, 0, 0, 0],
// [0, 0, 0, 0, 0],
// [0, 0, 0, 0, 0]]
3. 문자열
문자열 replaceing
let string = "hello"
let a = hello.replacingOccurrences(of: "h", with: "q").replacingOccurrences(of: "e", with: "a")
print(a)
// qallo
hasPrefix - 문자열이 어떤 글자로 시작하는 지 확인
if newId.hasPrefix(".") {
...
}
// newId가 .으로 시작하면 true 값 반환
hasPrefix - 문자열이 어떤 글자로 끝나는 지 확인
if newId.hasSuffix(".") {
...
}
// newId가 .으로 끝나면 true 값 반환
0..for i in stride(from: n, to: 0, by: -1) {
print(i)
}
// 5 4 3 2 1 0
2. 배열
1차원 배열 초기화
let array = Array(repeating: 0, count: 5)
print(array)
// [0, 0, 0, 0, 0]
2차원 배열 초기화
var blocks: [[Int]] = Array(repeating: Array(repeating: 0, count: width), count: height)
// width 5, height 3 라고 가정
// [[0, 0, 0, 0, 0],
// [0, 0, 0, 0, 0],
// [0, 0, 0, 0, 0]]
3. 문자열
문자열 replaceing
let string = "hello"
let a = hello.replacingOccurrences(of: "h", with: "q").replacingOccurrences(of: "e", with: "a")
print(a)
// qallo
hasPrefix - 문자열이 어떤 글자로 시작하는 지 확인
if newId.hasPrefix(".") {
...
}
// newId가 .으로 시작하면 true 값 반환
hasPrefix - 문자열이 어떤 글자로 끝나는 지 확인
if newId.hasSuffix(".") {
...
}
// newId가 .으로 끝나면 true 값 반환