Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스위프트
- 코틀린
- softeer
- 자바
- 현대sw
- Android
- VSCode
- kotlin
- 파이썬
- aws
- 소프티어
- 플러터
- 아마존 웹 서비스
- GDSC
- DART
- java
- 안드로이드
- MVVM
- SWIFT
- Flutter
- Python
- 다트
- programers
- 머신러닝
- 알고리즘
- baekjoon
- 개발
- 코테
- 프로그래머스
- 백준
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 1421번(파이썬): 나무꾼 이다솜 본문
문제
1421번: 나무꾼 이다솜
첫째 줄에 이다솜이 가지고 있는 나무의 개수 N과 나무를 자를 때 드는 비용 C와 나무 한 단위의 가격 W이 주어진다. 둘째 줄부터 총 N개의 줄에 이다솜이 가지고 잇는 나무의 길이가 한 줄에 하나
www.acmicpc.net
알고리즘
- 반복문을 통해 나무를 1부터 제일 긴 나무의 길이만큼 잘라본다.
- 반복문을 통해 모든 나무를 확인한다.
- 나무를 자른 후 개수와 남은 나무의 길이를 구한다.
- 남은 나무의 길이가 있다면 자른 나무 수만큼 비용을 낸다.
- 남은 나무의 길이가 없다면 자른 나무 수 -1 만큼 비용을 낸다.
- 자른 나무를 판 후 이익이 나는지 확인한다.
- 이익이 난다면 money에 이익을 더한다.
- 모든 나무를 확인한 후에 money가 이익의 총합 중에 가장 큰 값인지 확인한다.
코드
import sys
n, c, w = map(int, sys.stdin.readline().split())
trees = [int(sys.stdin.readline()) for _ in range(n)]
max_money = 0
# 반복문을 통해 나무를 1부터 제일 긴 나무의 길이만큼 잘라본다.
for i in range(1, max(trees) + 1):
money = 0
# 반복문을 통해 나무를 확인
for j in trees:
# cnt : 자른 나무 수
# remain : 남은 나무의 길이
cnt, remain = divmod(j, i)
# 나무가 남았다면 자른 나무 수만큼 비용을 낸다.
if remain:
expense = cnt * c
# 나무가 남지 않았다면 자른 나무 수 - 1만큼 비용을 낸다.
else:
expense = (cnt - 1) * c
# 자른 나무를 판다.
target = (cnt * w * i) - expense
# 자른 나무를 팔 때 이익이 안난다면 continue
if target < 0:
continue
# money에 이익을 더한다.
money += target
# 이익의 총합이 가장 큰 결과를 찾는다.
if money >= max_money:
max_money = money
print(max_money)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1713번(파이썬): 후보 추천하기 (0) | 2022.03.28 |
---|---|
[baekjoon] 백준 1706번(파이썬): 크로스워드 (0) | 2022.03.27 |
[baekjoon] 백준 1411번(파이썬): 비슷한 단어 (0) | 2022.03.25 |
[baekjoon] 백준 1326번(파이썬): 폴짝폴짝 (0) | 2022.03.22 |
[baekjoon] 백준 1283번(파이썬): 단축키 지정 (0) | 2022.03.21 |