[백준 python] 1449번 수리공 항승 - 그리디

2022. 3. 5. 15:05·지난 글 모음
반응형

[백준 python] 1449번 수리공 항승 - 그리디

레벨: 실버 3

언어: python


문제풀러가기

📑풀이 과정

물이 세는 곳 하나를 막기 위해서는 좌우 0.5 만큼이 필요하다

물이 세는 곳이 1이라면 0.5 ~ 1.5 구간이 테이프가 발리는 구간이다.

예시 처럼 테이프의 길이가 2이고
1 과 2 에서 물이 셀 때
0.5 ~ 2.5 까지 테이프를 붙여야하고 이때 길이 2짜리가 한개 들어간다.

  1. 물이 세는 곳의 입력을 배열에 저장하고 오름차순으로 정렬한다.
  2. 처음 들어오는 값을 기준으로
    테이프를 처음 붙이는 곳 arr[0] - 0.5 -> start라는 변수에 저장
    테이프가 끝나는 곳 start + L -> end라고 저장
  3. arr 순회 하면서 start 보다 크고 end 보다 작은 값은 넘어가고 범위를 넘어가면 cnt를 1더하고 범위를 새로 설정한다.

📋풀이 코드

import sys

input = sys.stdin.readline

N , L = map(int, input().split())
arr = list(map(int, input().split(' ')))
arr.sort()

start = arr[0]-0.5
end = start + L
cnt = 1
for i in range(0, len(arr)): 
  if start< arr[i] < end:
    continue
  else:
    cnt+=1
    start = arr[i]-0.5
    end = start + L

print(cnt)

반응형

'지난 글 모음' 카테고리의 다른 글

[백준 python] 1105번 팔 - 그리디  (0) 2022.03.09
[백준 python] 1246번 온라인 판매  (0) 2022.03.05
[백준 python] 1049번 기타줄 - 그리디  (0) 2022.03.04
[백준 python] 18310번 안테나 - 그리디  (0) 2022.03.04
[백준 python] 1448번 삼각형 만들기 (삼각형의 조건) - 그리디  (0) 2022.03.03
'지난 글 모음' 카테고리의 다른 글
  • [백준 python] 1105번 팔 - 그리디
  • [백준 python] 1246번 온라인 판매
  • [백준 python] 1049번 기타줄 - 그리디
  • [백준 python] 18310번 안테나 - 그리디
코딩하자영아
코딩하자영아
코딩공부내용 정리
  • 코딩하자영아
    코드치고 무게치고
    코딩하자영아
  • 전체
    오늘
    어제
    • 분류 전체보기 (84)
      • 개발 (3)
      • 지난 글 모음 (81)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Coding Test
    회원가입 폼
    html input
    python
    템플릿 문자열
    정글sw
    JavaScrpit
    자바스크립트
    malloc-lab
    sw정글사관학교
    프로그래머스
    코딩테스트
    React
    자바스크립트 문자열 변수
    sw 정글
    Express
    회원가입
    node.js
    백준
    javascript
    목록 창 만들기
    onChange
    PINTOS
    HTML
    사용자 정의 객체
    SW정글
    dfsbfs
    conding test
    Spring
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
코딩하자영아
[백준 python] 1449번 수리공 항승 - 그리디
상단으로

티스토리툴바