본문 바로가기
알고리즘

[Swift 알고리즘] 백준 20115 에너지 드링크

by 코코종 2023. 4. 6.
728x90

안녕하세요 코코종입니다.
백준 1일 1알고리즘(언제까지 갈지 모르지만)을 시작했습니다. 많관부~

//
//  main.swift
//  BackJoon
//
//  Created by kokojong on 2023/04/03.
//
//
import Foundation
// 20115 에너지 드링크 그리디 실3
// 5
// 3 2 10 9 6

 let n = Int(readLine()!)!
 let input = readLine()!
 
 var result: Double = 0.0
 var arr: [Double] = input.components(separatedBy: " ").map { Double($0)! }.sorted()
 //print(arr)
 
 result = arr.last!
 for i in 0..<n-1 {
 result = result + arr[i] / 2
 }
 print(result)

어차피 참고하려고 검색하셨을테니 문제에 대한 내용은 생략하도록 하겠습니다(앞으로도...)

가장 큰 값을 만드려면 가장 큰 애를 살려둬야 한다는 생각으로

1 2 3 4를 예로 들면 (4 + 3/2) + 2/2 + 1/2 이런식으로 처리했습니다. 처음에는 반대로 생각했었는데요

(1/2 + 2) / 2 + 3 이런식으로요! 그러나 예시에 나온 답이 아니라서 반대로 해봤더니 성공했습니다 ^^

728x90