본문 바로가기

Swift23

[iOS] UIDevice identifierForVendor / 기기 식별하기 아이폰 앱 서비스 하면서 사용자가 사용하는 아이폰의 기기를 식별해야할 일이 생길 수 있다. 아이폰마다 불변하는 특정 아이디, 식별자가 있어서 이 식별자를 수집하면 되지 않을까 하는 생각을 할 수 있다. 하지만 이런 사용자의 정보를 함부로 수집할 수 있도록 해준다면 우리의 애플이 아닐 것이다. 다만 애플은 우회적으로, 제한적으로 방법을 제공하고 있다. 바로 Vendor ID를 제공하는 것이다. https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor identifierForVendor | Apple Developer Documentation An alphanumeric string that uniquely ide.. 2023. 3. 22.
백준 - 보물 - Swift 수학 그리디 알고리즘 정렬 import Foundation let N = Int(readLine()!)! let arrayA = readLine()!.split(separator: " ").map{Int(String($0))!} let arrayB = readLine()!.split(separator: " ").map{Int(String($0))!} let sortedA = arrayA.sorted(by: { $0 $1}) var sum = 0 for i in 0 ..< N { sum += sortedA[i] * sortedB[i] } print(sum) https://www.acmicpc.net/problem/1026 1.. 2022. 7. 10.
백준 - 회의실 배정 - Swift https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 그리디 알고리즘 정렬 import Foundation let N = Int(readLine()!)! var meetings:[[Int]] = [] for _ in 0 ..< N { var meeting:[Int] = [] meeting = readLine()!.split(separator: " ").map{Int(String($0))!} meetings.append([meeting[0],meeting[1]]) } let sorted = meetings.sorted(by: {( $0[1],$0[0]) < ($1[1.. 2022. 7. 10.
백준 - 동전 0 - Swift https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디 알고리즘 import Foundation let input1 = readLine()!.split(separator: " ").map{Int(String($0))!} let kindsOfCoin = input1[0] let valueOfCoin = input1[1] var coins:[Int] = [] for _ in 0 ..<.. 2022. 7. 10.
백준 - ATM - Swift https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 그리디 알고리즘 정렬 import Foundation let N = Int(readLine()!)! var times = readLine()!.split(separator: " ").map{Int(String($0))!} var sorted = times.sorted(by: 2022. 7. 10.
백준 - 설탕 배달 - Swift https://www.acmicpc.net/problem/2839 수학 다이나믹 프로그래밍 그리디 알고리즘 import Foundation var kgSugar = Int(readLine()!)! var bags = 0 while kgSugar >= 0 { if kgSugar % 5 == 0 { bags += kgSugar / 5 print(bags) exit(0) } kgSugar -= 3 bags += 1 } print(-1) exit(0) 2022. 7. 10.
Swift 프로그램 종료하기 exit(0) Swift문법을 공부할 겸 Swift로 코딩테스트 문제들을 풀어보고 있다. 그 중 난해한 점이 있는데 바로 프로그램 종료이다. Swift는 main.swift에서 글로벌로 실행되어 따로 main함수가 없다. C같으면 return 0 로 메인함수를 종료 시켜 프로그램을 종료시킬 수 있지만 도대체 swift는 어떻게 프로그램을 종료시킬까? 찾아보니 간단하게 exit(0) 함수를 호출하여 종료 할 수 있다고 한다. 단, 주의 할 점은 Foundation을 import해야한다. 다음은 프로그램 종료 예시 이다. import Foundation var kgSugar = Int(readLine()!)! var bags = 0 while kgSugar >= 0 { if kgSugar % 5 == 0 { bags +=.. 2022. 7. 9.
Swift 삽입정렬, 선택정렬, 퀵 정렬 Swift 언어에 좀 익숙해 보고자 알고리즘에서 제일 처음에 나오는 정렬 코드를 짜보았다. 간단하게 함수, 배열, 조건문, 반복문 등을 익일 수 있었다. 1. 삽입정렬 func insertionSort(arr: inout [Int]) { for i in 1 .. 0 && arr[j - 1] > key { arr.swapAt(j - 1 , j) j-=1 } arr[j] = key } return } 2. 선택정렬 func selectionSort(arr: inout [Int]) { for i in 0 ..< arr.count { var min = i for j in i ..< arr.count { if arr[min].. 2022. 7. 3.
iOS UIKit 튜토리얼 - Frame vs Bounds 이번 포스트에서 공부해볼 내용은 UIKit의 Frame과 Bounds이다. iOS에서 뷰를 출력하기 위해서는 Frame과 bounds를 지정해야 화면에 출력할 수 있다. let firstView:UIView = { let view = UIView() view.backgroundColor = .red view.clipsToBounds = true return view }() let secondView:UIView = { let view = UIView() view.backgroundColor = .blue return view }() override func viewDidLayoutSubviews() { firstView.frame = CGRect(x:20,y:100,width: 300,height: 30.. 2021. 4. 20.