반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 "백준 BOJ - 2217 로프" 문제를 풀었습니다.
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
풀이
이번 문제는 그리디 알고리즘 문제입니다.
로프를 자를 수 있다는 것이 포인트입니다.
input을 역순으로 정렬합니다.
반복문을 돌면서 index가 증가할 때마다 로프의 개수도 증가합니다.
길이 * 로프의 개수를 계산하면서 max를 구해줍니다.
전체 코드
//2217 로프
import Foundation
let count = Int(readLine()!)!
var ropes: [Int] = []
for _ in 0..<count {
let input = Int(readLine()!)!
ropes.append(input)
}
ropes.sort(by: >)
var result = 0
for i in 0..<count {
result = max(result, ropes[i] * (i+1))
}
print(result)
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형