[백준 1911][C++] 흙길 보수하기

2023. 8. 11. 19:25·코딩 공부/백준(C++)
목차
  1. ◆문제 해결 및 설명◆
  2. ◆코드 전문◆

문제 링크

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


◆문제 해결 및 설명◆

문제 : 물 웅덩이와 널빤지의 갯수와 첫 줄에 제공하고, 물 웅덩이의 길이를 제공할 때, 최소 널빤지 사용 갯수를 대답하라.

 

힌트를 보고 처음에는 아무생각 없이 구현으로 풀었다. 

그랬더니 바로 메모리 초과가 딴! (문제 풀기전에 메모리와 시간을 확인 해야겠죠?)

그럼 이걸 수학적으로 풀어야 한다고 생각이 들었고, 그럼 물 웅덩이의 시작 부분을 찾아서 널빤지를 깔고 널빤지가 끝나는 위치를 저장한 다음, 저장한 위치에다가 널판지를 계속 설치를 하고,

이후 다음 물 웅덩이의 시작 부분이 저장된 널빤지가 끝나는 위치보다 작다면 널빤지가 끝나는 위치부터 널판지를 설치하는 코드를 작성하였다.

 

◆코드 전문◆

#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;

int main()
{
    int N, L, answer = 0, maxLen = 0;
    cin >> N >> L;
    vector<pair<int, int>> pairArray(N);
    for (int i = 0; i < N; i++)
    {
        int start, end;
        cin >> start >> end;
        pairArray[i] = make_pair(start, end);
        maxLen = max(maxLen, end);
    }
    sort(pairArray.begin(), pairArray.end());

    int done = 0;
    for (int i = 0; i < pairArray.size(); i++)
    {
        int howNamu;
        if (done < pairArray[i].first)
        {
            howNamu = ceil((double)(pairArray[i].second - pairArray[i].first) / L);
            answer += howNamu;
            done = pairArray[i].first + howNamu * L;
        }
        else
        {
            howNamu = ceil((double)(pairArray[i].second - done) / L);
            answer += howNamu;
            done = done + howNamu * L;
        }
    }

    cout << answer;
}

'코딩 공부 > 백준(C++)' 카테고리의 다른 글

[백준 1461][C++] 도서관  (0) 2023.08.23
[백준 10942][C++] 팰린드롬?  (0) 2023.08.11
[백준 2607][C++] 비슷한 단어  (0) 2023.08.11
[백준 15686][C++] 치킨 배달  (0) 2023.08.09
[백준 9658][C++] 돌 게임 4  (0) 2023.08.09
  1. ◆문제 해결 및 설명◆
  2. ◆코드 전문◆
'코딩 공부/백준(C++)' 카테고리의 다른 글
  • [백준 1461][C++] 도서관
  • [백준 10942][C++] 팰린드롬?
  • [백준 2607][C++] 비슷한 단어
  • [백준 15686][C++] 치킨 배달
메카인
메카인
  • 메카인
    메카인의 지식창고
    메카인
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩 공부
        • TIL(Today I Learn)
        • TIL
        • 백준(C++)
        • Python
        • 알고리즘
        • 프로젝트 회고
      • C++
        • C++
        • C++ STL
        • C,C++ mCoding yotube
      • 게임개발
        • 언데드서바이벌_골드메탈_클론코딩
        • 3D_골드메탈_클론코딩
        • 유니티_문제해결
        • 게임 수학
      • Unreal 공부
        • UE5 GameDev
        • Unreal Engine 4 C++ The Ult..
      • 교재 문제 풀이
        • 운영체제
      • 정보처리기사
        • 정처기 요약
        • 정처기 오답노트
      • 학교수업
        • 데이터베이스
        • 프로그래밍 언어론
        • 리눅스 시스템
        • 네트워크
      • 일상
        • 주식
        • 독서
      • (비공개 전용)
        • memory
        • Build
        • OOP
        • Smart Pointer
        • lamda
        • 게임 수학
        • 모던 C++
        • 모던 C++ STL
        • 모던 C++ Concurrency, Paralle..
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 블로그 관리
  • 링크

  • 공지사항

    • 공지사항 - 인생과 블로그의 목표
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
메카인
[백준 1911][C++] 흙길 보수하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.