목록그리디 알고리즘 (7)
MUKER_DEV with iOS

문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 문제 설명 200이란 숫자가 주어졌을 때 각기 다른 숫자를 최대한으로 사용해 더 했을 때 200이 나오게 해야한다. 나의 풀이 var input = Int(readLine()!)! var count = 1 while input >= 0 { print(input,count) input -= count count += 1 } print(count - 2) while문은 0보다 크거나 같을 때까지 돈다. 그렇다면 필연적으로 주어진 input은 값이 초과하..

10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 문제 설명 대표적인 그리디 알고리즘 되시겠다. 300, 60, 10이 주어진 숫자에 따라 최소의 횟수로 나누어 떨어지게 만들면 됩니다. 나의 풀이 var T = Int(readLine()!)! let..

11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 let NK = readLine()!.split(separator: " ").map { Int($0)! } let coin = (0...

14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 var input = Int(readLine()!)! var count = 0 while input > 1 { if input % 5 == 0 { count += input / 5 break } input -= 2 count += 1 } print(input == 1 ? -1 : count) // 시간: 8~12ms ..

1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 import Foundation var input = readLine()! var result = "" var count = 0 for i in input { if count == 4 { result += "AAAA" count = 0 } if i == "X" { count += 1 } if i ==..

5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 var change = 1000 - Int(readLine()!)! var count = 0 while change != 0 { while change >= 500 { cha..

2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 var sugarKg = Int(readLine()!)! var count = 0 while sugarKg > 2 { if sugarKg % 5 == 0 { count += sugarKg / 5 sugarK..