백준 27527. 배너 걸기

2024. 3. 1. 15:47·백준

https://www.acmicpc.net/problem/27527

 

27527번: 배너 걸기

현대오토에버는 현대자동차그룹의 모빌리티 소프트웨어 전문 기업으로서, In-Car와 Out-Car 영역 전반의 소프트웨어와 인프라를 안정적, 효율적, 혁신적으로 지원하는 'Mobility SW Provider' 역할을 수

www.acmicpc.net

'''
N개의 구간마다 물체가 정확히 하나씩 존재
배너는 연속된 N개구간 중 M개의 구간에 결쳐서 걸어야 함
연속된 M개 구간에서 같은 높이가 90%이상이면 걸 수 있음!
배너를 걸 수 있는지 확인

1차 시도: 하나하나 count 해봤다가 시간초과됨
2차 시도: 슬라이딩 윈도우 알고리즘 서치함 + Counter 함수 서치함 -> 시간초과됨
3차 시도: Counter 함수 버리고 리스트 이용
'''

N, M = map(int,input().split())
sections = list(map(int,input().split()))

def can_hang_banner(N, M, heights):
    count = [0] * (10**6 + 1) # 각 높이의 빈도수를 저장할 리스트
    max_freq = 0 # 최대 빈도수
    for i in range(N):
        if i >= M: # 윈도우의 크기가 M이 되면(윈도우 단체로 한칸 이동)
            # 윈도우에서 빠져나간 높이의 빈도수 감소
            count[heights[i-M]] -= 1
        # 현재 높이의 빈도수 증가
        count[heights[i]] += 1
        # 최대 빈도수 갱신
        if max_freq < count[heights[i]]:
            max_freq = count[heights[i]]
        if i >= M-1: # 윈도우가 완전히 구성되었을 때(배너걸 수 있는지 유무 판단)
            if max_freq >= 0.9 * M: # 가장 빈도수가 높은 요소의 빈도수가 0.9 * M 이상이면
                return "YES" # 배너를 걸 수 있음
    return "NO" # 배너를 걸 수 없음

print(can_hang_banner(N,M,sections))

생각해보면 간단한데...감을 잃어서 그런가 많이 고민했다...

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 1012. 유기농 배추  (0) 2024.03.03
백준 1926. 그림  (0) 2024.03.02
백준 28353. 고양이 카페  (0) 2024.02.28
백준 11725. 트리의 부모 찾기  (0) 2024.02.28
백준 2531. 회전 초밥  (0) 2023.11.13
'백준' 카테고리의 다른 글
  • 백준 1012. 유기농 배추
  • 백준 1926. 그림
  • 백준 28353. 고양이 카페
  • 백준 11725. 트리의 부모 찾기
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (383) N
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅&리팩토링 (6) N
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    99클럽
    Til
    개발자취업
    코딩테스트준비
    항해99
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 27527. 배너 걸기
상단으로

티스토리툴바