[C++] 19941번: 햄버거 분배

2023. 7. 14. 23:44·[게임 개발] 알고리즘 공부/백준

링크

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

 

19941번: 햄버거 분배

기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사

www.acmicpc.net

문제

입출력 예제

코드

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <cmath>

using namespace std;

int main(void)
{
	string str;
	int answer = 0;

	int n, k;
	cin >> n >> k;

	cin >> str;

	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] == 'P')
		{
			for (int j = i - k; j <= i + k; j++)
			{
				if (j < 0 || j >= n) continue;
				if (str[j] == 'H')
				{
					answer++;
					str[j] = 0;
					break;
				}
			}
		}
	}

	cout << answer;
}

풀이

  • 그리디 알고리즘을 사용하였다.
  • k만큼 떨어진 햄버거를 먹을 수 있으니 기준이 되는 사람을 i로 가정하면 i-k 부터 i+k 까지
    for문을 반복한다.
  • 인덱스를 벗어나면 메모리 오류가 발생하니 j<0 || j>=n 의 조건에서 continue하여 예외처리한다.
  • H가 발견되면 answer를 1 올리고 해당 인덱스의 문자를 0으로 바꿔서 다시한번 방문했을 때 햄버거로
    인식하지 못하게 한다.
저작자표시 (새창열림)

'[게임 개발] 알고리즘 공부 > 백준' 카테고리의 다른 글

[C++] 20186번: 수 고르기  (0) 2023.07.16
[C++] 20115번: 에너지 드링크  (0) 2023.07.15
[C++] 13305번: 주유소  (0) 2023.07.14
[C++] 2012번: 등수 매기기  (0) 2023.07.14
[C++] 11399번: ATM  (0) 2023.07.13
'[게임 개발] 알고리즘 공부/백준' 카테고리의 다른 글
  • [C++] 20186번: 수 고르기
  • [C++] 20115번: 에너지 드링크
  • [C++] 13305번: 주유소
  • [C++] 2012번: 등수 매기기
람팜팜~
람팜팜~
:)
  • 람팜팜~
    RumPumPum
    람팜팜~
  • 전체
    오늘
    어제
    • 전체 (123)
      • 🎵 일상 (2)
      • JAVA (5)
        • 김영한의 자바 입문 (3)
      • JavaScript (12)
      • ---------------------------.. (0)
      • [게임 개발] 포트폴리오 (2)
        • RPG (1)
        • 슈터-플랫포머 (1)
      • [게임 개발] 개발 일지 (28)
        • RPG (25)
        • TopDownProject (3)
      • [게임 개발] 언리얼엔진 공부 (9)
        • 이득우의 언리얼 프로그래밍 Part.1 (6)
        • 이득우의 언리얼 프로그래밍 Part.2 (1)
        • 개인 메모 (2)
      • [게임 개발] 알고리즘 공부 (60)
        • 프로그래머스 (8)
        • 백준 (52)
        • 개인 메모 (0)
      • [게임 개발] CPP 공부 (2)
        • 이것이 C++ 이다 (1)
        • Effective C++ (0)
        • Effective Modern C++ (0)
        • 홍정모 그래픽스 새싹코스 (1)
      • [게임 개발] CS 공부 (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      참조자
      context switching
      해시
      역참조
      그리디
      dfs
      브루트포스
      슬라이딩 윈도우
      프로세스
      메모리구조
      우선순위 큐
      누적합
      dp
      스레드
      문자열
      투포인터
      데드락
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    람팜팜~
    [C++] 19941번: 햄버거 분배
    상단으로

    티스토리툴바