구름 LEVEL JAVA - 통증 (난이도 2)

» algorithm

구름 난이도 2 통증

코드

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		// 통증의 수치 입력값 저장
		int pain = Integer.parseInt(br.readLine());
		int result = 0;
		// 알약, 진통제 감소 수치 배열
		int[] div = {7, 14};
		// 진통제, 알약 순서대로 최대 사용!
		for(int i=1;i>=0;i--){
            // 통증 / 알약
			result += pain / div[i];
			pain %= div[i];
		}
		// 남은 통증 밴드로 처리
		result += pain;
		
		System.out.println(result);
	}
}

풀이

통증 감소 아이템 사용 시 1(밴드) , 7(알약) , 14(진통제) 씩 감소하는데
여기서 1을 제외하고 배수이므로 14 부터 사용하면 최소한의 아이템을 사용 할 수 있다는걸 알 수 있다.

통증 수치가 14 일 때
1 X 14 : 14개
7 X 2 : 2개
14 X 1 : 1개

결과적으로, 통증 감소 수치가 높은것부터 사용시 도구를 최소로 사용한다.