본문 바로가기

swift enumerated()

(2)
[백준/Swift] 2217: 로프 | PS일지 | enumerated().map()에 관해.. 문제 간단한 문제 요약 여러 개의 로프가 있다. 로프를 통해 물체를 들어올리는데 각각의 로프마다 중량이 있고, 병렬로 로프들을 연결할 수 있다. 그 대신 w/k 로 해서 로프들의 중량이 일치하도록 해야 병렬적으로 로프를 물체에 묶어 들어올릴 수 있다. 문제 풀이 정말 어려운 그리디.. 어떻게 풀어야 할지 곰곰이 생각해봤습니다. 1 2 4 7 10 의 로프가 있을 때, "어떻게 최대한의 무게를 들 수 있을것인가?..." 이때 든 의문점은 중량 1의 로프와 중량 10의 로프를 같이 사용해서 물체를 올린다면 (10 + 1) / 2 = 5? 최대한으로 5씩 중량을 나눠서 들 수 있는데, 최대 중량 1짜리가 5를 들 수 있을까? 그럴 수 없을 것 같아서 내린 결론은 1로프와 10 로프를 같이 병렬적으로 사용할 땐..
[Swift] Array's enumerated(). 배열의 각 원소 index 가져오는 방법 예전에도 map을 사용하면서 "index 지원 안하나?" 잠깐 생각해 본 적이 있지만,, 이번에 다익스트라 문제를 풀다가 "map을 쓸 때 element 랑 추가로 index는 동시에 사용 못 할까?" 에 해답을 찾게 되었습니다. 바로 이 함수입니다!! 평소에는 for in 구문을 통해서 배열의 첫 인덱스부터 마지막 인덱스까지 얻었습니다. map을 사용할 때는 index를 미리 선언하고 값을 증가하며 사용 했습니다. 이젠 이 함수를 사용하면 됩니다!! EnumeratedSequence를 반환 하는데 (n,x) 이렇게 쌍을 반환합니다. 여기서 n은 0 ~ Sequence.count-1까지 index를 의미합니다. x는 Sequence의 첫 원소부터 마지막 원소까지를 의미합니다. for (n, c) in "..