반응형
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.* | |
import java.io.* | |
fun main(ars: Array<String>){ | |
val br = BufferedReader(InputStreamReader(System.`in`)) | |
val bw = BufferedWriter(OutputStreamWriter(System.out)) | |
val THREE_KG = 3 | |
val FIVE_KG = 5 | |
var n = br.readLine().toInt() | |
var num = n | |
var count = 0 | |
while(true) { | |
if(num % FIVE_KG == 0) { | |
if(num == 0) { | |
bw.write(count.toString()) | |
} else { | |
bw.write((count + num / FIVE_KG).toString()) | |
} | |
break | |
} else if (num < 0){ | |
bw.write("-1") | |
break | |
} | |
num -= THREE_KG | |
count++ | |
} | |
bw.flush() | |
bw.close() | |
br.close() | |
} |
문제구분:
그리디 알고리즘
리뷰 :
처음엔 5kg로 나누고 3kg나눠서 나머지가 0이 아니면 -1 일 것이라고 단순히 생각했지만, 6kg을 배달한다고 했을때의 예외가 존재했다(3kg만으로 나눌 수 있음).
while문에서 5kg로 나눠 0으로 나누어 떨어지지않으면 3kg를 한번씩 빼주면서 루프를 돌려서 문제를 풀었다.
반응형
'백준' 카테고리의 다른 글
[백준 11720번] 숫자의 합 (0) | 2022.04.11 |
---|