[Algorithm] 상자 색칠하기

eunseo kim 👩‍💻·2021년 1월 13일
0

👊 문제 풀기

목록 보기
6/17

📌 문제 유형

완전 탐색


📌 문제

  • 인접한 면에 같은 색의 색종이를 붙일 수 없는 상자가 있다.
  • 서로 다른 색종이 N장으로 위 조건을 만족하여 상자를 꾸밀 수 있는 지 판별하시오.

입력 예시

8 - N장의 색종이
1 2 3 1 2 3 1 2 - 각각의 색종이의 숫자는 색종이의 색깔을 의미함

출력 예시

YES - 가능하면 YES, 불가능하면 NO를 출력한다.


💡 문제 해결

  • 1개의 색은 최대 2번만 사용 가능하다 (2보다 크면 쓸 수 있는 색에서 제외시킨다)
  • 위의 과정으로 구한 사용가능한 수의 갯수를 count로 센다
  • count가 6보다 작으면 NO, 크면 YES

📌 Code

n = int(input())
arr = list(map(int, input().split()))
p_dict = {}
count = 0

for i in range(n):
    p_dict[arr[i]] = 0

for i in range(n):
    if p_dict[arr[i]] < 2:
        p_dict[arr[i]] += 1
        count += 1

if count < 6:
    print("NO")
else:
    print("YES")
profile
열심히💨 (알고리즘 블로그)

0개의 댓글