적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Algorithm 159

[Swift] Array 배열 관련 함수들

초기화 및 선언 배열을 선언할 때 선언과 동시에 값을 넣어 초기화 해줄 때에는, 타입을 따로 명시해주지 않아도 요소들의 타입에 따라 자동으로 타입 추론이 이루어진다. var numArr = [1,2,3,4,5] var strArr = ["hong", "ssup"] 하지만 빈 배열을 선언할 때에는 다음과 같이 타입을 반드시 명시해 주어야 한다. 그렇지 않으면 Empty collection literal requires an explicit type 이라는 에러가 뜬다. var emptyStrings = [String]() var emptyInts: [Int] = [] var emptyArr: [Any] = [] 또한 한 배열에 여러가지 자료형 요소들을 넣고 싶다면 explicit type annotatio..

Algorithm/참고 2022.01.06

[Swift 알고리즘] Programmers 제일 작은 수 제거하기

제일 작은 수 제거하기 문제 설명 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열일 경우 배열에 -1을 넣어 리턴하세요. 제한 조건 - arr은 길이 1 이상인 배열 - 인덱스 i,j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 이다. func solution(_ arr:[Int]) -> [Int] { var arr = arr arr.remove(at: arr.firstIndex(of: arr.min()!)!) return arr.isEmpty ? [-1] : arr } 다른 사람의 풀이 보면 'index(of:)' 함수를 많이 썼던데, 현재는 deprecated 되었다고 한다. 대신에 'firstInd..

Swift 정규식 NSRegularExpression

WWDC 2022 what's new in swift 에서 새로운 Swift Regex 를 발표했다. import RegexBuilder 하면 정규식 리터럴 대안으로, 알아보기 힘든 복잡한 정규식을 단어로 작성해서 더 이해하기 편하고 읽기 쉬운 SwiftUI 스타일 언어를 제공한다고 한다. 참고 : https://developer.apple.com/videos/play/wwdc2022/110354/ OCR 로 영수증 인식해서 값을 추출해야하는데 이게 과연 앱개발의 영역인가.. 이거는 머신러닝으로 해야하는거 아닌가 싶지만 우선 영수증에 있는 날짜와 금액 등을 불러오기 위해 정규표현식에 대해 먼저 알아보았다. 정규표현식 : String에서 원하는 패턴이나 문자열을 추출할 때 사용하는 방법 Swift는 언어 ..

Algorithm/참고 2022.01.04

[Swift iOS] Dictionary 사용법 + dictionaries inside array

딕셔너리의 기본 속성key : value 함께 저장되는 자료구조정렬되지 않은 컬렉션값은 중복 가능, 키는 중복되면 안된다.  1. 딕셔너리 생성var dict1: [String:Any] = [:] //빈 딕셔너리 생성var dict2: [String:Any] = ["name":"hongssup", "age":20] var dict3 = Dictionary() //생성자로 생성var dict4 = [String:Any]()value 값에는 타입을 Any로 설정해주면 String, Int 아무거나 올 수 있지만 key 값은 타입을 지정해주어야 한다.key 값을 Any 로 설정해주면 다음과 같은 경고가 뜬다. Any는 Hashable 프로토콜을 준수하지 않아 key 값으로 사용 불가하다눈.. Type '..

Algorithm/참고 2021.09.10

[Swift 알고리즘] Programmers 문자열 다루기 기본

문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 - s는 길이 1 이상, 길이 8 이하인 문자열입니다. 내가 제출한 코드 : 최대 0.06ms func solution(_ s:String) -> Bool { let c = s.count if c == 4 || c == 6 { return c == (s.filter{$0.isNumber}).count } else { return false } } filter를 사용하여 문자열에서 숫자만 가져와 비교하는 방법으로 구현했는데 다른 제출 코드를 살펴보니 더 간단한 방법이 있더라. 애초에..

[Swift 알고리즘] Programmers 가운데 글자 가져오기

2020-04-08 Programmers : 가운데 글자 가져오기 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 - s는 길이가 1 이상, 100이하인 스트링입니다. func solution(_ s:String) -> String { let midIndex = s.count/2 var result: String = "" if s.count%2 == 1 { result = String(s[s.index(s.startIndex, offsetBy: midIndex)]) } else { result = "\(s[s.index(s.startIndex, offsetBy: midIndex-1)])"+"\(s[s...

[Swift 알고리즘] Programmers 두 정수 사이의 합

2020-04-07 Programmers : 두 정수 사이의 합 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 - a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. - a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. - a와 b의 대소관계는 정해져있지 않습니다. func solution(_ a:Int, _ b:Int) -> Int64 { var sum = 0 if a < b { for i in a...b { sum += i } } else { for i in b...a { sum += i..

[Swift 알고리즘] 백준 1000번 A+B

Swift로 알고리즘 입문! 확실히 알고리즘같은 걸 공부하기엔 파이썬이 훨씬 편했던 것 같다.. 자주 사용하는 함수들이나 프로그램 자체가 Swift는 프론트 개발에 맞춰있어서 알고리즘 문제를 풀기엔 간단한 문제라도 아주 낯선느낌..? ㅎㅎㅎ 첫번째 난관은 입력 받아오기! 플레이그라운드에서는 입력 받아오는 게 불가하고, 새로운 Xcode 프로젝트를 생성할 때, macOS 의 Command Line Tool 을 사용해야만 console 창에 값을 입력할 수 있다고 한다. 백준 1000번 문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 : 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 : 첫째 줄에 A+B를 출력한다. readLine()으로 입력을..

Algorithm/Baekjoon 2021.04.05
728x90
반응형