일단 2294번 한다.
//
// main.swift
// algorithm_practice
//
// Created by 김동환 on 2020/04/16.
// Copyright © 2020 김동환. All rights reserved.
//
import Foundation
let line = readLine()
let inputs = line?.split(separator : " ") ?? []
let n = Int(inputs.first ?? "") ?? 0
let k = Int(inputs.last ?? "" ) ?? 0
var coins: [Int] = []
var answer : [Int] = [0]
for _ in 0..<n {
let line = readLine() ?? ""
if let input = Int(line) {
coins.append(input)
}
}
for o in 1...k{
var candidates : [Int] = []
for coin in coins{
if o >= coin, answer[o-coin] >= 0{
candidates.append(answer[o-coin] + 1)
}
}
answer.append(candidates.min() ?? -1)
}
print(answer.last ?? -1)
음 근데 이거 다른분 코드 참고한건데, 이분은 반복문이 ,나랑 다르네 순서가;; 반복문 순서가 중요한게 아닌가??
배열에 넣는 방식이 아니라 answer에 append해서 순차적으로 늘리는것도 음 좀 특이하군.
이걸 근데 함수형 프로그래밍으로 바꿔보자.
일단 iterate를 바꾸자.
음 근데 일단 이중루프를 어떻게 할지에서 막혔다. d2 강의에서 보여주긴 했는데 es6라 기억이 안난다. 못찾으면 그냥 그거 보고 바꾸는게 날거같다....
음 그냥 이중 루프 말고 방법이 없나.
일단 이 에러가 검색 좀 해도 잘 모르겠다.
func forEach<Seq : Sequence ,C> (a : Seq, b : Seq) -> Array<C>{
for aa in a {
for bb in b {
}
}
}
forEach<[Int],Int>(a: coins, b: [1...k])
ㅇ
ㅇㅇ이렇게 구현하려 하는데, 일단 에러가 나고, 음 맘에 안드는건, 이게 이중 반복문 기능을하는 함수이긴 한데, 그 안에 이중 포문을 사용한게 약간 찝찝하고, 음 이건 괜찬다 쳐도, 그 안에서 역할을할 함수를 못넣었다.
answer = forEach(a: coins, b: [1...k])
음 이렇게 하면 되나 보다. [http://minsone.github.io/mac/ios/swift-generics-summary] 이 글보다 보니, 스위프트는 자동으로 타입을 추론한다는거 보고, 내가 명시적으로 표시해준게 틀린걸수도 있다 생각했다.
음 근데 새로운 에러 나옴.
Cannot convert return expression of type '[Int]' to return type 'Array<C>'
func forEach<Seq : Sequence ,C> (a : Seq, b : Seq) -> Array<C>{
//이게 let이 array안에 원소 추가도 안되는 건가.?
let arr : [Int] = []
for aa in a {
for bb in b {
}
}
return arr
}
또 에러
Binary operator '>=' cannot be applied to two 'Seq.Element' operands
func forEach<Seq : Sequence ,C> (a : Seq, b : Seq) -> Array<C>{
//이게 let이 array안에 원소 추가도 안되는 건가.?
let arr : [Int] = []
for aa in a {
for bb in b {
if aa.self >= bb.self {
}
}
}
return arr
}
음 잘 모르겠다. 일단 보류하고 쉬운ㄱ ㅓ풀자.
'알고리즘 문제 풀기' 카테고리의 다른 글
<프로그래머스> [카카오 인턴 2020] 수식 최대화 (0) | 2020.09.19 |
---|---|
<스위프트&알고리즘> 10818번 최소, 최대 (0) | 2020.04.16 |
<백준> 2294번 동전2 (0) | 2020.04.16 |
<알고리즘 문제> 해설 보면 안됐는데;, 중요 , 백준 동전1 2293번 (0) | 2020.04.12 |
<부분합 문제?> 다양한 종류의 냅색 문제?부분합?에 대한 이해를 해보자. (0) | 2020.04.08 |