Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- hash
- C++
- Algorithm
- 코딩테스트
- 알고리즘
- 운영체제
- 고득점Kit
- Lv.2
- 파이썬
- C
- 프로그래머스
- 2색칠하기
- BFS
- 면접질문
- Java
- OS
- 이분그래프판별
- Python
- 코딩테스트준비
- 쿠쉬쿠쉬
- 단지번호붙이기
- BruteForceSearch
- 그래프
- 코테준비
- 문제풀이
- Lv.1
- 해시
- LV.3
- 동적계획법
Archives
- Today
- Total
쿠쿠의기록
3. 상자 꾸미기 본문
문제
면이 6개인 상자가 있다. 이를 여러 가지 색종이를 붙여 꾸밀려고 하는데, 단 조건이 있다. 인접한 면에 같은 색의 색종이를 붙이면 안 된다는 것이다. 또한, 한 면에는 한 장의 색종이만 붙일 수 있다. 여러 가지 색의 색종이들이 주어졌을 때, 조건을 만족하여 상자의 모든 면에 붙일 수 있는지 판별하는 프로그램을 작성하시오.
입력
첫째 줄에 색종이의 장수 N ( 1 <= N <= 1,000 ) 이 주어진다. 둘째 줄에 각각의 색종이의 색깔을 나타내는 N개의 숫자가 주어진다. 색깔은 양의 정수로 이루어져 있고, 1부터 N까지의 범위의 수이다.
출력
조건을 만족하면서 상자를 꾸밀 수 있으면 “YES”, 아니면 “NO”를 출력한다.
예제 입력
6 1 2 1 2 1 3
예제 출력
NO
예제 입력
6 1 2 3 1 2 3
예제 출력
YES
예제 입력
7 1 1 1 2 2 3 3
예제 출력
YES
예제 입력
8 1 2 2 2 1 1 1 3
예제 출력
NO
#include <stdio.h>
int main() {
int arr[1000];
int n,i,temp;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &temp);
arr[temp]++;
}
int sum=0;
for(i=0; i<n; i++){
if(arr[i]<2) sum+=arr[i];
else sum+=2;
}
if(sum>=6) printf("YES");
else printf("NO");
return 0;
}
'알고리즘 > L1~4 기본' 카테고리의 다른 글
4. seat (0) | 2020.07.23 |
---|---|
4. baseball game (0) | 2020.07.23 |
4. tetris (0) | 2020.07.23 |
4. bingo (0) | 2020.07.23 |
3. colorpaper (0) | 2020.07.15 |