백준 4796번 문항 www.acmicpc.net/problem/4796
풀이
그리디 알고리즘 문제이다.
전체 V일짜리 휴가 중 연속하는 P일을 주기로 한다. 예를 들어, 8일(P) 중 5일(L) 캠핑장 이용이 가능하다고 할 때, 그리디 알고리즘에 따라 전체 20일(V) 휴가를 연속 8일 기준으로 나누어 생각한다.
여기서 중요한 것은 남은 날짜이다. 20일 / 8일 의 나머지는 4일인데 이 경우 L 값보다 작거나 같으면 그 나머지를 모두 캠핑장 이용일자로 더해주면 된다. 하지만! 남은 일자가 P와 L 값의 사이 인 경우도 고려해 줘야 한다.
마지막 경우는 0 0 0 값이 주어지므로 0 값이 주어지면 계산을 종료할 수 있도록 작성한다.
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
|
import java.util.Scanner;
public class greedy_4796 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int no = 0;
out:
do {
no++;
int l = sc.nextInt();
int p = sc.nextInt();
int v = sc.nextInt();
if(l==0) break out;
int cnt = 0;
int how = (v%p<=l) ? v%p : l;
cnt = v/p*l + how;
System.out.println("Case "+ no +": "+cnt);
} while(true);
}
}
|
cs |
'알고리즘과 코테' 카테고리의 다른 글
[JAVA | 백준 1193] 분수찾기 (0) | 2021.03.08 |
---|---|
[JAVA | 백준 5622] 다이얼 (0) | 2021.03.03 |
[JAVA | 백준 1110] 더하기 사이클 (0) | 2021.02.28 |
[JAVA | 백준 9498] 시험성적 (0) | 2021.02.28 |
[JAVA | 백준 2675] 문자열 반복 (0) | 2021.02.26 |
댓글
최근에 올라온 글
TAG
- filezila
- SQLD
- 노마드코더
- intellij
- EC2
- 호스팅영역
- git연동
- 배포
- 정보처리기사 필기
- JIRA
- java
- 노개북
- AWS
- 오늘의코딩
- 실용주의프로그래머
- gradle
- 웹페이지만들기
- 정보처리기사 실기
- IT 5분 잡학사전
- 북클럽
- ubuntu
- LifecycleException
- 기술블로그
- putty
- jdbc
- 정보처리기사
- 독서후기
- gradle build
- spring
- 개발도서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함