-
BOJ) 치킨 쿠폰알고리즘/백준 2020. 6. 22. 01:41반응형
치킨 쿠폰
풀이
입력 횟수가 주어지지 않은 상태에서 BufferedReader로 입력을 받는 것에 대해 새롭게 공부했다.
EOF(End Of file, 파일의 끝)를 만났을 때, readLine() 메소드를 호출하면 null이 반환된다.
따라서, 입력 제한이 존재하지 않을 경우에는 문자열 변수에 입력을 해주고 null 체크를 하면 된다.
그리고 치킨 쿠폰 문제는 치킨 한 마리 먹기가 왜이리 힘든지 모르겠다..
문제에서 놓친 부분은, 치킨을 쿠폰으로 시킬 수 있을만큼 시킨 후에 남은 쿠폰을 저장해주지 않은 것이었다.
만약 쿠폰이 10장이 있고 쿠폰 3장에 1마리를 시켜먹을 수 있다면, 쿠폰 9장을 이용해서 치킨 3마리를 먹고 쿠폰 1장이 남아있는 상태여야한다. 여기에 쿠폰으로 시킨 치킨 3마리에 대해서 쿠폰 3개를 추가해줘야한다.
( 엄청 혜자 치킨집이다.. )EOF를 만났을 때 처리하는 법, 그리고 쿠폰을 최신화하는 법
위의 두 가지 사항만 주의하면 어렵지 않게 풀 수 있는 문제다.
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class ChickenCoupon_1673 { public static void main(String[] args) throws IOException { solution(new BufferedReader(new InputStreamReader(System.in))); } private static void solution(BufferedReader br) throws IOException { String inputStr = ""; while((inputStr = br.readLine()) != null) { System.out.println(getChickens(new StringTokenizer(inputStr))); } br.close(); } private static int getChickens(StringTokenizer st) { int n = Integer.parseInt(st.nextToken()); int k = Integer.parseInt(st.nextToken()); int result =n; while(n/k !=0) { result += n/k; n = n/k + n%k; } return result; } }
반응형'알고리즘 > 백준' 카테고리의 다른 글
BOJ) 블랙잭 (0) 2020.06.23 BOJ) 연결 요소의 개수 (0) 2020.06.22 BOJ) 욱제는 결정장애야!! (0) 2020.06.18 BOJ) 대출 요청 (0) 2020.06.18 BOJ) 대회 개최 (0) 2020.06.18