본문 바로가기

프로그래머스 (Swift)/기초

(123)
[Day21-3] 정수 부분 문제 내 정답 코드import Foundationfunc solution(_ flo:Double) -> Int { return Int(flo)} #1. Double로 받은 값을 Int형태로 반환한다.배운 기술
[Day21-2] 전국 대회 선발 고사 문제 내 정답 코드import Foundationfunc solution(_ rank:[Int], _ attendance:[Bool]) -> Int { var students:[Student] = [] (0.. #1. index, rank, attence속성을 갖는 Student구조체를 만들어 사용하였다.2. 모든 학생의 객체를 students에 append해주었다.3. rank로 정렬을 해주고 filter로 attendance가 true인 학생만 남긴 배열을 새로 만들어 주었다.4. 새로운 배열의 index값을 a, b, c로 지정해주고 문제 해결에 맞는 식으로 값을 반환하였다.배운 기술 1. sorted(by: )https://developer.apple.com/documentat..
[Day21-1] 뒤에서 5등 위로 문제  내 정답 코드import Foundationfunc solution(_ num_list:[Int]) -> [Int] { return Array(num_list.sorted()[5...])} #1. 전 문제와 마찬가지로 정렬 후 5번째 요소부터 끝 요소까지 반환하여 해결하였다.배운 기술
[Day20-5] 뒤에서 5등까지 문제 내 정답 코드import Foundationfunc solution(_ num_list:[Int]) -> [Int] { return Array(num_list.sorted()[0...4])} #1. 매우 간단한 문제였는데 먼저 sorted를 통해 배열을 정렬하고2. 5번째 요소까지만 반환하여 해결했다.배운 기술
[Day20-4] 배열의 길이에 따라 다른 연산하기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int], _ n:Int) -> [Int] { var arr = arr if arr.count % 2 == 0 { (0.. #1. 배열의 길이가 홀수인지 짝수인지 먼저 판단하였고2. 짝수라면 홀수 인덱스 값에만 n을 더하여 배열을 반환하였다.3. 홀수라면 짝수 인덱스 값에만 n을 더하여 배열을 반환하였다.배운 기술
[Day20-3] 문자열 묶기 문제 내 정답 코드import Foundationfunc solution(_ strArr:[String]) -> Int { var result: [Int] = [] for i in 1...30 { result.append(strArr.filter { $0.count == i }.count) } return result.max()!} #1. 원소의 최대 길이가 30이므로 1부터 30까지 반복문을 돌리고2. 같은 개수 요소들의 count를 필터링하여 새로운 배열에 담고3. 가장 큰 값을 반환한다.배운 기술
[Day20-2] 배열 비교하기 문제 내 정답 코드import Foundationfunc solution(_ arr1:[Int], _ arr2:[Int]) -> Int { let arr1Count = arr1.count let arr2Count = arr2.count let arr1Sum = arr1.reduce(0, +) let arr2Sum = arr2.reduce(0, +) if arr1Count > arr2Count { return 1 } else if arr1Count arr2Sum { return 1 } else if arr1Sum  #1. if else문만 잘 활용하면 되는 간단한 문제이다.2. 2개의 배열의 count로 1차적으로..
[Day20-1] 배열의 길이를 2의 거듭제곱으로 만들기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int]) -> [Int] { var arr = arr let count = arr.count var two = 1 while(true) { if count  #1. 먼저 무한 반복문을 돌리고 2를 계속 곱한다.2. 2의 거듭 제곱과 배열의 개수를 비교하면서 개수가 2의 거듭제곱 값보다 작거나 같아진다면3. 비는 공간만큼 0을 채워 반복문을 탈출하고 반환한다.배운 기술
[Day19-5] 무작위로 K개의 수 뽑기 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int], _ k:Int) -> [Int] { var result:[Int] = [] for value in arr { if result.count  #1. 처음에 Set를 사용하여 중복된 값을 없앴지만, 순서가 바뀌는 바람에 실패하였다.2. contains를 사용하여 중복된 값이 없도록 새로운 배열을 만들고3. 새로운 배열의 count가 k보다 작으면 남은 공간을 -1로 채워준다.배운 기술
[Day19-4] 배열 만들기 6 문제 내 정답 코드import Foundationfunc solution(_ arr:[Int]) -> [Int] { var stk:[Int] = [] for i in 0.. #1. arr배열로 반목문을 돌리고2. stk배열이 empty한지로 첫 번째 조건문을 만들었다.3. else 문에서 stk의 마지막 값이 arr[i]와 같은지로 조건문을 완성하여 문제를 해결했다.배운 기술