728x90
반응형
2024.08.05기준 - 실버2
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 옷의 개수를 주어 졌을 때, 양 옆이 같은 옷을 안 입고 사진을 찍을 수 있는지 확인하여 출력하는 문제입니다.
이 문제의 핵심은
- 옷이 1벌일 때, 인원 수가 1이면 Happy이지만 인원 수가 1보다 많다면 Unhappy가 된다는 것입니다.
- 전체 옷의 종류 수 100000와 이 옷의 개수가 최대 100000일 때를 감안 해 전체 인원 수는 long타입으로 선업합니다.
1. 입력 받은 수로 전체 인원 수와 가장 옷의 개수가 많은 수를 구해줍니다.
long person = 0; // 전체 인원 수
int max = 0; // 가장 많은 옷 수
List<Integer> list = new LinkedList<>();
for (int i = 0; i < n; i++) {
list.add(Integer.parseInt(st.nextToken()));
person += list.get(i);
max = Math.max(max, list.get(i));
}
2. 예외 케이스를 제외한 (모든 인원 수) / 2가 max값 보다 작거나 같아야지 Happy가 됩니다.
// 예외 케이스 옷이 1벌일 때, 인원 수가 1명이면 Happy
if (n == 1 && person == 1) {
sb.append("Happy");
} else if (person / 2 < max) { // (전체 인원 수 / 2) 보다 제일 큰 값이 크다면
sb.append("Unhappy");
} else {
sb.append("Happy");
}
코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine()); // 옷의 개수
StringTokenizer st = new StringTokenizer(br.readLine());
long person = 0; // 전체 인원 수
int max = 0; // 가장 많은 옷 수
List<Integer> list = new LinkedList<>();
for (int i = 0; i < n; i++) {
list.add(Integer.parseInt(st.nextToken()));
person += list.get(i);
max = Math.max(max, list.get(i));
}
// 예외 케이스 옷이 1벌일 때, 인원 수가 1명이면 Happy
if (n == 1 && person == 1) {
sb.append("Happy");
} else if (person / 2 < max) { // (전체 인원 수 / 2) 보다 제일 큰 값이 크다면
sb.append("Unhappy");
} else {
sb.append("Happy");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 11279번 최대 힙 (0) | 2024.08.06 |
---|---|
BEAKJOON / 백준 - JAVA 30022번 행사 준비 (0) | 2024.08.05 |
BEAKJOON / 백준 - JAVA 14650번 걷다보니 신천역 삼 (Small) (0) | 2024.08.04 |
BEAKJOON / 백준 - JAVA 13268번 셔틀런 (0) | 2024.08.03 |
BEAKJOON / 백준 - JAVA 11916번 볼질 (0) | 2024.08.02 |