백준 19539. 사과나무
https://www.acmicpc.net/problem/19539
19539번: 사과나무
첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다.
www.acmicpc.net
풀이
- 전체 나무 길이의 합이 3으로 나누어 떨어지지 않으면 물뿌리개를 통해 만들 수가 없다.
- 물뿌리개를 동시에 뿌리기 때문에 2씩 증가하는 물뿌리개를 5번 뿌리면 1씩 증가하는 물뿌리개도 5번 뿌려야 한다.
- 2를 사용한 총 횟수를 cnt에 저장하고 총 합을 sum 이라고 했을때 cnt >= sum/3 일 경우 만들 수 있다.
전체 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int sum = 0;
int cnt = 0;
for (int i = 0; i < n; i++) {
int tmp = Integer.parseInt(st.nextToken());
cnt += tmp / 2;
sum += tmp;
}
if(sum % 3 != 0) {
System.out.println("NO");
} else {
sum = sum / 3;
if (cnt >= sum)
System.out.println("YES");
else
System.out.println("NO");
}
}
}