fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 25186 (C++) INFP 두람
최초 업로드: 2025-11-05 02:50:56
최근 수정 시간: 2025-11-05 02:50:56
게시자: rlatjwls3333
카테고리: 백준
조회수: 13
# [Silver II] INFP 두람 [문제 링크](https://www.acmicpc.net/problem/25186) ## 문제 설명 <p>두람이의 MBTI는 INFP이다. 두람이는 친구들과 옷이 겹치는 것을 정말 싫어한다. </p> <p>어느 날 기분이 좋지 않은 두람이는 친구들과 우정 여행을 가기로 했다. 여행을 가서 두람이는 친구들과 $N$ 종류의 옷을 각자 골라 입고 다 같이 원형으로 서서 사진을 찍기로 했다. 사진을 찍는 총인원수는 옷의 총개수와 같다. 오지랖이 넓은 두람이는 사진을 찍는 모두가 이웃한 두 사람과 옷이 겹치지 않으면 행복해지기로 했다. </p> <p>과연 두람이는 행복할 수 있을까?</p> ## 입력 <p>첫째 줄에 두람이와 친구들이 입고 있는 옷의 종류의 수 $N$ ($1 \le N \le 10^5$)이 주어진다.</p> <p>둘째 줄에는 종류별 옷 개수 $d_1, d_2, \cdots, d_N$ ($1 \le d_i \le 10^5$)이 공백으로 구분되어 주어진다.</p> ## 출력 <p>두람이가 행복할 수 있으면<strong> </strong><span style="color:#e74c3c;"><code>Happy</code></span>를 출력하고, 행복할 수 없다면 <span style="color:#e74c3c;"><code>Unhappy</code></span>를 출력한다.</p> ## 풀이 같은 옷의 개수가 전체 옷의 절반보다 많이 있으면 배치할 수 없습니다. ``` c++ #include<bits/stdc++.h> using namespace std; int d[100'000]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; long long sum=0; for(int i=0;i<n;i++) { cin >> d[i]; sum += d[i]; } for(int i=0;i<n;i++) { if(d[i]>max(1LL, sum/2)) { cout << "Unhappy"; return 0; } } cout << "Happy"; } ```