백준 [9981] - Ski Course Design
처음에는 단순한 스위핑 알고리즘인줄 알았다. 각각의 높이에서 가장 높은수와 낮은 수의 값이 17이 넘어가면, 이들은 1씩 더하거나 빼서 차이를 17로 만들고, 17이 만들어졌을때 가장 낮은 수만큼 더해진 결과값을 채택하는식으로 했다.그러나 이럴경우 매번 앞뒤를 1씩 더하는 반복문이 너무 지저분했고, 치명적인 반려또한 존재했다.예를들어 N = 3와 [1, 5, 20]을 입력했을때, 정답은 1과 20을 각각 한칸씩 줄여서 1 + 1 = 2로 2가 출력되어야하는데, 내 알고리즘 같은 경우는 가장 낮은수를 먼저 움직여보고, 그 다음에 가장 높은수를 낮추는 식으로해서, 우선 17이 되거나 내 앞에있는 다음수, 그러니까 지금같은경우는 1이 5가 될때가지 1을 더하는 방식으로 진행하기 때문에, 1을 2칸 움직여서 3..
내가 몰라서 쓰는 스위프트(24) allSatisfy
allSatisfy는 컬렉션의 모든 요소가 주어진 조건을 만족하는지 여부를 확인하는 고차 함수이다. 이 함수는 컬렉션의 각 요소를 조건에 맞게 평가하며, 모든 요소가 조건을 만족하면 true를 반환하고, 그렇지 않으면 false를 반환한다.공식 문서에서는 다음과 같이 설명하고 있다:Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate. let numbers = [2, 4, 6, 8, 10]let allEven = numbers.allSatisfy { $0 % 2 == 0 }print(allEven) // truelet mixedNumbers = [2, 3, 6, 8, 10]let a..