https://www.acmicpc.net/problem/22864
22864번: 피로도
첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다.
www.acmicpc.net
피로도
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
1초 | 1024 MB | 1478 | 610 | 543 | 44.075% |
문제
하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 만큼 쌓이고 일은 만큼 처리할 수 있다.
만약에 한 시간을 쉰다면 피로도는 만큼 줄어든다. 단, 피로도가 음수로 내려가면 0으로 바뀐다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다.
피로도를 최대한 을 넘지 않게 일을 하려고 한다. 를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다.
번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 하루는 24시간이다.
입력
첫 번째 줄에 네 정수 A, B, C, M이 공백으로 구분되어 주어진다.
맨 처음 피로도는 0이다.
출력
하루에 번 아웃이 되지 않도록 일을 할 때 최대 얼마나 많은 일을 할 수 있는지 출력한다.
제한
- 1 ≤ A ≤ 1,000,000
- 1 ≤ B ≤ 10,000
- 1 ≤ C ≤ 10,000
- 1 ≤ M ≤ 1,000,000
예제 입력1
5 3 2 10
예제 출력1
24
예제 입력2
10 5 1 10
예제 출력2
15
예제 입력3
11 5 1 10
예제 출력3
0
풀이
1. 첫 번째 줄에 네 정수 A, B, C, M이 공백으로 구분되어 주어지기에 네 정수를 input()으로 입력시킨후, split()을 통해 공백을 기준으로 구분되도록 하였고, map()을 통해 입력되어진 문자형을 int형으로 형 변환 시켜주었다.
2. 하루는 24시간이므로 24번 반복하도록 하였다.
3. 피로도가 M을 너미면 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 되므로 이 경우 0이 출력되도록 하였다.
4. 피로도가 M을 넘기지만 않으면 괜찮으므로 기존의 피로도(풀이에서의 T)에 작업을 했을 때 추가되는 피로도(A)가 M을 넘기지 않을 경우 작업을 하도록 하였고, 넘기게 되면 쉬어서 기존의 피로도(풀이에서의 T)에 줄어드는 피로도(C)만큼 줄어들도록 하였다.
#sys를 이용하여 입력한 경우
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/Python] 2075_N번째 큰 수_Python 풀이 (0) | 2022.05.04 |
---|---|
[백준/Python] 16953_A→B_Python 풀이 (0) | 2022.05.04 |
[백준/Python] 14425_문자열 집합_Python 풀이 (0) | 2022.04.14 |
[백준/Python] 20154_이 구역의 승자는 누구야?!_Python 풀이 (0) | 2022.04.12 |
[백준/Python] 1927_최소 힙_Python 풀이 (0) | 2022.04.12 |