[Swift] 달리기 경주(+시간복잡도)
·
코딩테스트
얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요. 1차 시도 - 56.3점 (..
[Swift] 외계어 사전
·
코딩테스트
PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요.func solution(_ spell:[String], _ dic:[String]) -> Int { var dict = Dictionary() for (i, d) in dic.enumerated() { dict[i] = d.map{String($0)} } return dict.values.map{Set($0).isSuperset(of: s..
[Swift] 배열 만들기 2
·
코딩테스트
정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.func solution(_ l:Int, _ r:Int) -> [Int] { var result = [Int]() var temp = Array(repeating: 0, count: "\(r)".count) let arr = [0, 5] func set(i: Int, temp: [Int]){ var temp = temp for a in arr { temp[i] = a ..
[Swift] 주사위 게임 2
·
코딩테스트
1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.1. 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.2. 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.3. 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.func solution(_ a:Int, _ b:Int, _ c:Int) -> Int { let arr: Set = ..
[Swift] 문자 개수 세기
·
코딩테스트
알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.import Foundationfunc solution(_ my_string:String) -> [Int] { var resultUpper = Array(repeating: 0, count: 26) var resultLower = Array(repeating: 0, count: 26) ..
[Swift] compare 살펴보기
·
iOS
ComparisonResultcompare 설명을 위해 ComparisonResult 코드를 먼저 봐야 한다.ComparisonResult는 enum 타입으로 작을 때, 같을 때, 클 때 이렇게 값이 나눠진다!frozen public enum ComparisonResult : Int, @unchecked Sendable { case orderedAscending = -1 // 작을 때 case orderedSame = 0 // 같을 때 case orderedDescending = 1 // 클 때} comparestring.compare(String, options: .CompareOptions, range: .Index, locale: Locale) compar..
[Swift] Class & Struct
·
iOS
1. 사용자 정의 타입개발자가 직접 타입을 구현하고 싶을 때 사용자 정의타입인 class, struct, enum을 사용한다.Basic type인 Int, String, Bool도 내부적으로 struct를 사용한다는 것을 알 수 있다@frozen public struct Int : FixedWidthInteger, SignedInteger { ... } 2. Class의 초기화 방식class의 initializing type(초기화 방식)은 초기값 지정과 생성자 생성으로 구분할 수 있다.둘다 하지 않으면 “Class ‘SwiftClass’ has no initializers” 오류가 뜬다 초깃값 지정위 코드와 같이 apple = “사과”와 같은 형태로 값을 초기화하는 것이다.생성자 구현생성자는 ini..