[백준/Python] 1449번. 수리공 항승

2024. 10. 26. 19:16·코딩테스트/BAEKJOON
728x90
반응형

📌 문제유형: 탐욕법(그리디) 

📌 문제링크 

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

 

📌 풀이코드 

N, L = map(int, input().split())
holes = list(map(int, input().split()))
covered = [0 for _ in range(len(holes))]
holes.sort()

count = 0
for i, h in enumerate(holes):
    able = [(h-0.5), (h-0.5) + L] # 커버 가능한 범위
    if not covered[i]:
        covered[i] = 1
        count += 1
        for j in range(i+1, len(holes)):
            if able[0] < holes[j] < able[1]:
                covered[j] = 1
    else:
        continue

print(count)

- 좌우 간격 0.5씩은 남겨둬야 한다고 했으니까, 특정 구멍 위치에 대해서 커버 가능한 범위를 찾고 싶었다.

- 그래서 현재 구멍에 대해 가능 범위를 미리 잡고, (able)

- 현재 구멍이 not covered 라면 그 다음 구멍 위치들에 대해 해당 able로 커버 가능한지도 살펴본다. 그러면 테이프 개수를 최소화할 수 있다. 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > BAEKJOON' 카테고리의 다른 글

[백준/Python] 10773. 제로  (0) 2024.11.05
[백준/ Python] 28278. 스택2  (4) 2024.11.05
[백준/Python] 3085. 사탕게임  (1) 2024.10.26
[백준/Python] 3040. 백설 공주와 일곱 난쟁이  (0) 2024.10.26
[백준/Python] 2075. N번째 큰 수  (0) 2024.10.25
'코딩테스트/BAEKJOON' 카테고리의 다른 글
  • [백준/Python] 10773. 제로
  • [백준/ Python] 28278. 스택2
  • [백준/Python] 3085. 사탕게임
  • [백준/Python] 3040. 백설 공주와 일곱 난쟁이
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[백준/Python] 1449번. 수리공 항승
상단으로

티스토리툴바