[백준 python] 19941번 햄버거 분배 - 그리디

2022. 3. 10. 11:30·지난 글 모음
반응형

[백준 python] 19941번 햄버거 분배 - 그리디

레벨: 실버3

언어: python


문제풀러가기

📑풀이 과정

생각한 아이디어를 코드로 구현할 수 있다면 누구나 쉽게 풀 수 있는 문제이다.

 

햄버거를 먹을 수 있는 최대 사람의 수는 사람의 위치 P에서 -k ~ +k안에 햄버거가 있는지 탐색하면 된다.
그리고 찾은 햄버거 'H'를 다른 값으로 바꿔주어 다시 카운팅 하지 않게 한다.

 

0 1 2 3 4  -> 위치
H P P P H 이고 k = 1 일 때
처음 p에서 0 ~ 2까지 탐색하여 H(햄버거)를 다른 값(필자는 o로 바꿈)으로 바꿔서
o P P P H 가 되고
최종적으로
o P P P o가 되며 최대 인원은 1번과 3번이 햄버거를 먹어서 2명이 된다.

 

! 단 탐색 시 주의할 점은 테이블 배열의 시작과 끝을 넘지 않게 범위를 설정해주어야 한다.

📋풀이 코드

import sys

sys.stdin = open("input_py.txt", "r")
input = sys.stdin.readline

N, K = map(int, input().split(' '))
table = list(input().strip())

cnt = 0
for idx, val in enumerate(table):
  if val =='P':
  # 범위 설정 주의
    for i in range(max(idx-K, 0), min(idx+K+1, N)):
      if table[i] =='H':
        cnt+=1
        table[i] = 'O'
        break

print(cnt)

반응형

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

[백준 python] 12904번 A와 B 그리디  (0) 2022.03.11
[백준 python] 1339번 단어 수학 - 그리디  (0) 2022.03.10
[백준 python] 1105번 팔 - 그리디  (0) 2022.03.09
[백준 python] 1246번 온라인 판매  (0) 2022.03.05
[백준 python] 1449번 수리공 항승 - 그리디  (0) 2022.03.05
'지난 글 모음' 카테고리의 다른 글
  • [백준 python] 12904번 A와 B 그리디
  • [백준 python] 1339번 단어 수학 - 그리디
  • [백준 python] 1105번 팔 - 그리디
  • [백준 python] 1246번 온라인 판매
코딩하자영아
코딩하자영아
코딩공부내용 정리
  • 코딩하자영아
    코드치고 무게치고
    코딩하자영아
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 개발 (2)
      • 지난 글 모음 (81)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
코딩하자영아
[백준 python] 19941번 햄버거 분배 - 그리디
상단으로

티스토리툴바