jo16
좌충우돌 기록기
jo16
전체 방문자
오늘
어제
  • 분류 전체보기 (30)
    • NLP (1)
    • 일반 (0)
    • 취업 (1)
    • 42seoul (1)
    • 운영체제 (1)
    • 컨퍼런스 (1)
    • 데이터베이스시스템 (5)
    • 알고리즘 (10)
    • 회고 (0)
    • Deep Learning Specializatio.. (9)
      • Neural Networks and Deep Le.. (4)
      • Improving Deep Neural Netwo.. (3)
      • Convolutional Neural Networ.. (0)
      • Sequence Models (0)
      • Structing Machine Learning .. (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 데이터베이스시스템
  • 머신러닝
  • 강의정리
  • 42seoul
  • Cub3D
  • 삼성SW역량테스트
  • 복습
  • 네이버 deview
  • NAVERDEVIEW2023
  • relational algebra
  • raycasting
  • 딥러닝
  • 첫 취준
  • 컴퓨터공학
  • relational model
  • cs
  • 개발자컨퍼런스
  • 삼성대학생인턴
  • mlx
  • dbms
  • KEY
  • Computer Graphics
  • Ai

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jo16

좌충우돌 기록기

프로그래머스 구명보트 (C++)
알고리즘

프로그래머스 구명보트 (C++)

2024. 7. 16. 10:17

1. 문제설명

 

2. 문제해결

전형적인 그리디 문제이다. 정렬을 하고 처음 인덱스와 마지막 인덱스를 더했을 때 limit 이하라면, 그것이 최적의 수임을 보장한다는 사실을 알면 어렵지않게 풀 수 있다. 순간 answer 개수를 어떻게 세야 할 지 모르겠어서 전체 길이 (다들 따로 타는 최악의 수)로 답을 초기화하고, 두명이 탈 때마다 하나씩 빼는 식으로 개수를 세었다. 

3. 코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;
int solution(vector<int> people, int limit) {
    int answer = people.size();
    sort(people.begin(), people.end()); 
    int start = 0;
    int end = people.size() - 1;
    while (start < end)
    {
        if (people[start] + people[end] <= limit)
        {
            answer--;
            start++;
        }
        end--;
    }
    return answer;
}

 

'알고리즘' 카테고리의 다른 글

프로그래머스 기능개발 (C++)  (0) 2024.07.17
프로그래머스 의상 (C++)  (0) 2024.07.16
프로그래머스 전화번호목록 (C++)  (0) 2024.07.15
프로그래머스 조이스틱 (C++)  (1) 2024.07.15
백준 15686번 치킨 배달 (C++)  (1) 2024.03.30
    '알고리즘' 카테고리의 다른 글
    • 프로그래머스 기능개발 (C++)
    • 프로그래머스 의상 (C++)
    • 프로그래머스 전화번호목록 (C++)
    • 프로그래머스 조이스틱 (C++)
    jo16
    jo16
    공부한 것들을 기록합니다.

    티스토리툴바