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
- javascript
- 그리디
- Spring Framework MVC
- Java
- 프로그래머스43165
- 백준12845
- jsp
- 백준1388
- BFS/DFS
- 백준4796
- 펠린드롬
- 백준
- 프로그래머스
- 구현
- 백준1969
- 백준11000
- 알고리즘
- BFS
- 백준2606
- sql
- 백준11047
- 신입 사원
- 백준 1946
- 자바
- 타겟넘버
- 백준10988
- dfs
- 바닥장식
- 강의실배정
- 동전0
Archives
- Today
- Total
The Kkang's man
[ 자바 /Java ] 백준 4796 : 캠핑 본문
문제
풀이
1. Case 번호에 쓸 cnt, 결과값을 저장할 result를 선언한다.
2. 한 줄에 사용 가능한 기간 L, 연속하는 날짜 P, 총 휴가기간 V를 입력받는다.
3. 이용 가능한 기간 L이 0일 경우 while문 중지
4. 아니라면 Case를 1 추가하고 result를 0으로 초기화한다.
5. V일동안 반복되는 P일 이내에 L일을 모두 사용
6. L과 남은 날을 비교하여 L 또는 남은 날을 result에 더해준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Camping_4796 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuffer sb;
int cnt = 0;
int result;
while(true) {
st = new StringTokenizer(br.readLine(), " ");
int L = Integer.parseInt(st.nextToken()); // 사용 가능 기간
int P = Integer.parseInt(st.nextToken()); // 연속하는 날짜
int V = Integer.parseInt(st.nextToken()); // 총 휴가 기간
if(L==0) break;
cnt++; // Case +1
result = 0; // result 초기화
result += L * (V / P); // V일 동안 반복되는 P일 이내에 L일 모두 사용
if( L <= V % P ) { // L이 남은 날보다 적거나 같은 경우
result += L; // result에 L 추가
} else if( L > V % P) { // L보다 남은 날이 적은 경우
result += V % P; // result에 남은 날 추가
}
sb = new StringBuffer();
sb.append("Case " + cnt + ": " + result).append('\n');
System.out.print(sb);
}
}
}
'알고리즘 > 그리디' 카테고리의 다른 글
[자바 / Java] 백준 1969 : DNA (0) | 2021.06.06 |
---|---|
[자바 / Java] 백준 12845 : 모두의 마블 (0) | 2021.06.06 |
[자바 / Java] 백준 11000 : 강의실 배정 (0) | 2021.06.06 |
[자바 / Java] 백준 1946 : 신입 사원 (0) | 2021.06.06 |
[자바 / Java] 백준 11047 : 동전0 (0) | 2021.05.31 |
Comments