목록Algorithms (33)
아요 개발 일기
안녕하세요! 오늘은 나누어 떨어지는 숫자 배열 문제를 풀어보겠습니다!! 문제 풀이 저는 for in 문을 사용해서 arr 값을 하나씩 뽑아줬습니다! 그 후에 i % divisor == 0 일때 ( divisor로 나눴을때 나머지가 0), result에 append (추가) 해줍니다. 마지막으로 나눠지는 값이 없을때, result가 isEmpty (비었을때) 이면 -1 출력 아니면 result 값을 sorted(정렬)하여 출력해줍니다. 간단하죠??? func solution(_ arr:[Int], _ divisor:Int) -> [Int] { let array = arr.sorted().filter{ $0 % divisor == 0 } return array == [] ? [-1] : array } 저의 ..
안녕하세용!! 어제 백신을 맞았더니 오늘 컨디션이 안 좋네용,,,ㅜㅜ 오늘은 바로바로 제일 작은 수 제거하기 문제를 풀어보았습니다!! 문제 내가 푼 풀이 문제 푸는데 자꾸 arr가 let 이어서 remove가 안 된다고 뜨더라구요ㅜ.ㅜ 그래서 array 라는 변수에 할당해주었습니다! array.remove ( - array 배열에서 삭제해라! at: array.firstIndex( - array의 앞의 인덱스부터 탐색하여 of: array.min()!)!) - arr.min에 해당하는 값을! 이런식으로 코드를 짰어요!! 그러면 최소 값만 잘 지워진답니다! 마지막은 배열의 갯수가 0 즉, 인덱스가 1개라면 -1 반환 아니라면 array 반환 하도록 해줬어요! 더디지만 점점 실력이 늘고있는거같은건 기분탓이겠..
문제 풀이 import Foundation func solution(_ n:Int) -> Int { var result: String = "" var num = String(n, radix: 3) for char in num.reversed() { result.append(String(char)) } return Int(result, radix: 3)! } 저는 radix를 사용해서 쉽게 진수를 변환했어요! Apple 공식 사이트 참고 3진수로 변환한 값을 거꾸로 저장하기 위해서 for-in문을 사용했습니다. reversed()를 사용하여 num 문자열을 거꾸로 뽑아줍니다. 그 후에 미리 만들어 놓은 result 변수에 append (추가) 해줍니다. 마지막으로 result 값을 다시 10진수로 바꾸기 ..
문제 풀이 import Foundation func solution(_ numbers:[Int]) -> [Int] { var result = [Int]() for i in 0 ..< numbers.count { for j in i + 1 ..< numbers.count { let num = numbers[i] + numbers[j] if !result.contains(num) { result.append(num) } } } return result.sorted() } for-in 문을 사용해서 풀어보았습니다! numbers 배열의 i 값일 때, 나머지 numbers 배열의 i와 i + 1값부터 차례대로 더해서 num 상수에 넣어줍니다. 같은 숫자는 한 번만 출력해주면되므로, 배열의 contains 메서..
문제 풀이 minNum 부분이 조금 헷갈려서 다른 풀이글을 참고했습니다! 변수 maxNum, minNum을 만들고, for-in문을 통해서 내부의 배열 값을 받습니다. maxNum에는 배열의 i 값들 중 큰 값과 maxNum을 비교 후 큰 값을 넣어주고, minNum에는 배열의 i 값들 중 작은 값과 minNum을 비교 후 큰 값을 넣어줍니다. 그 후, 변수 두개를 곱해주면 끝! 좋은 풀이 func solution(_ sizes:[[Int]]) -> Int { let sorted = sizes.map{$0.sorted()} return sorted.map{$0[0]}.max()! * sorted.map{$0[1]}.max()! } 이 풀이는 고차 함수 map을 많이 사용했네요? 일단 sorted 상수에 ..
문제 풀이 저는 week와 month를 Array로 선언해놓고 풀었습니다! a의 값만큼 for 문을 돌려주고 만약, a = 5라면 month[0...5]까지 0, 31, 29, 31, 30, 31 값을 result에 값에 더해줍니다 그 후에 result 값에 b 값도 더해주고, 일주일은 7일이니 result % 7 의 값을 week에서 찾아서 Return 합니다. func solution(_ a:Int, _ b:Int) -> String { let w = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"] let monthDay = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] let totalDay = monthDay[0..
문제 풀이 저는 for-in 문을 사용했어요! for-in 문으로 1부터 count 만큼 돌리고 price와 i 를 곱한 값을 result 변수에 더해줍니다. 그 후에 money가 result 값보다 크면 0을 return하고, 아니면 result - money 값을 return 해 줍니다. func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ let totalPrice = price * (count * (count+1)/2) if money >= totalPrice { return 0 } return Int64(totalPrice - money) } 이번에도 다른 풀이를 데려왔습니당 이 풀이는 다른 것들은 다 제 풀이랑 비슷해서 아래 부분만 보..
안녕하세요! 오늘으으으은 가운데 글자 가져오기 문제를 풀어보겠습니다! 문제 풀이 String은 [i]로 인덱스 검색을 할 수 없어서 array를 사용해서 간단하게 풀어보았습니다!! func solution(_ s:String) -> String { return String(s[String.Index(encodedOffset: (s.count-1)/2)...String.Index(encodedOffset: s.count/2)]) } 이 풀이는 String.index 를 잘 활용했네요?? 역시 아는만큼 보인다... 설명을 좀 보려고 apple developer 사이트에서 encodedOffset 을 찾아봤는데 아쉽게도 이제 사용하지 않는 기능인것 같아요ㅠㅠ 정확성 테스트 제 풀이는 한번 더 Array로 감싸..