본문 바로가기

코딩 테스트/백준(java)

DP - 2839. 설탕 배달

반응형

문제

www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

코드

import Foundation

while let input = readLine(){
    var result = -1
    var num = Int(input)!
    for five in stride(from: num/5, through: 0, by: -1)   {
        var tempKg = num - (5*five)
        if tempKg % 3 == 0 {
            result = five + (tempKg/3)
            break
        }
    }
    print(result)
}

 

설명

이중포문으로 접근이 가능하지만 아무래도 DP 문제다 보니, 시간초과가 발생할것 같았어요.

그래서 5kg의 개수를 최대로 선택하고, 남은 kg을 3kg 포대로 쪼갤 수 있다면(나머지%3 == 0일 때)

값을 저장하고 종료하도록 했습니다.

 

회고

백준에서 스위프트 언어로 문제 풀기 좀 빡세네요. 컴파일 에러 발생하고, 인풋때문에 플레이그라운드로 못풀죠??

백준 사이트의 문제는 자바로 풀던가 해야겠어요;;;

반응형

'코딩 테스트 > 백준(java)' 카테고리의 다른 글

DP - 9095. 1, 2, 3 더하기  (0) 2021.03.25
DP - 1463. 1로 만들기  (0) 2021.03.25
Q14891번: 톱니바퀴  (0) 2021.03.20
Q14890: 경사로  (0) 2021.03.20
백준 2193) 이친수  (0) 2017.09.16