프로그래머스 - 가운데 글자 가져오기
·
Algorithm/programmers
func solution(_ s:String) -> String { if s.count == 1 { return s } let Index1 = s.index(s.startIndex, offsetBy: s.count/2-1) let Index2 = s.index(s.startIndex, offsetBy: s.count/2) return s.count % 2 != 0 ? String(s[Index2]) : String(s[Index1...Index2])}
프로그래머스 - 귤 고르기
·
Algorithm/programmers
import Foundationfunc solution(_ k:Int, _ tangerine:[Int]) -> Int { var tmp: [Int:Int] = [:] var sum = 0 for tan in tangerine { tmp[tan, default: 0] += 1 } let sortedValue = tmp.sorted(by: { $0.value > $1.value }) var answer = 0 for (index, value) in sortedValue.enumerated() { sum += value.value if sum >= k { answer = index + 1 ..
프로그래머스 - 연속 부분 수열 합의 개수, feat. Set
·
Algorithm/programmers
import Foundationfunc solution(_ elements:[Int]) -> Int { var set = Set() for i in 0..
프로그래머스 - 영어 끝말잇기
·
Algorithm/programmers
import Foundationfunc solution(_ n:Int, _ words:[String]) -> [Int] { var stack: [String] = [] var previous: Character = words.first!.last! var num = 1 var cycle = 1 for word in words { if num > n { num = 1 cycle += 1 } if stack.isEmpty { stack.append(word) } else { if stack.contains(word) |..
프로그래머스 - 멀리 뛰기 feat. DP
·
Algorithm/programmers
DP 를 사용하여 쉽게 구현하였습니다  func solution(_ n:Int) -> Int { var arr = [1,1,2] if n
프로그래머스 - 점프와 순간 이동 feat. 최소 연산횟수
·
Algorithm/programmers
당연히 DP 로 접근해야 한다고 생각하였습니다. 하지만 배열을 만들어서 접근하게 될 경우 시간초과가 발생하여 다른 방법을 모색해야 했습니다.import Foundationfunc solution(_ n:Int) -> Int{ var answer: [Int] = [1,1,1] if n  문제 이해하기문제에서 현재 위치를 2배로 건너뛰는 것은 비용이 발생하지 않습니다, 그렇기 때문에 2로 나누어 떨어진다면 비용을 증가시키지 않고 만약 현재 위치가 2로 떨어지지 않는다면 -1 만큼 감소시키고 비용을 1씩 증가시키는 것으로 문제를 접근할 수 있겠습니다.import Foundationfunc solution(_ n:Int) -> Int{ var answer = 0 var a = n ..
ytw_developer
'Algorithm/programmers' 카테고리의 글 목록