프로그래머스 - 구명보트 (Java, 투포인터)

2025. 3. 5. 20:00·알고리즘
728x90

아이디어

투포인터

 

풀이

어차피 2명씩밖에 못 타니,

가장 무거운 사람과 가장 가벼운 사람을 함께 태울 수 있다면 함께 태워버리고

아니라면 무거운 사람만 태우도록 했다.

 

먼저 정렬을 한다.

가장 가벼운 사람에 대한 인덱스는 태울 때마다 증가하게 되고, 방문 처리를 해야 한다.

방문 배열을 따로 만들거나 2중 반복문을 사용하는 대신 투포인터로 퉁쳤다.

무조건 보트 수는 증가하게 되므로, 둘을 함께 태울 수 있을 때만 offset(가장 가벼운 사람 인덱스)을 증가시킨다.

 

(근데 이게 그리디가 맞나...? 그리디 쥐약이라 그냥 투포인터로 풀었다)

코드

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0, offset = 0;

        Arrays.sort(people);

        for(int i = people.length - 1; i >= offset; i--) {
            if(people[i] + people[offset] <= limit) offset++;
            answer++;
        }

        return answer;
    }
}
728x90

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

프로그래머스 - 섬 연결하기 (Java, 최소 신장 트리(MST), 크루스칼)  (0) 2025.03.05
프로그래머스 - 큰 수 만들기 (Java, 그리디)  (0) 2025.03.05
프로그래머스 - 조이스틱 (Java, 그리디)  (0) 2025.03.05
프로그래머스 - 전력망을 둘로 나누기 (Java, 완전 탐색, bfs)  (0) 2025.03.05
프로그래머스 - 소수 찾기 (Java, 백트래킹, 소수, 에라토스테네스의 체)  (0) 2025.03.04
'알고리즘' 카테고리의 다른 글
  • 프로그래머스 - 섬 연결하기 (Java, 최소 신장 트리(MST), 크루스칼)
  • 프로그래머스 - 큰 수 만들기 (Java, 그리디)
  • 프로그래머스 - 조이스틱 (Java, 그리디)
  • 프로그래머스 - 전력망을 둘로 나누기 (Java, 완전 탐색, bfs)
suhsein
suhsein
티끌모아 태산
  • suhsein
    기억 못 할 거면 기록이라는 좋은 수단이 있다
    suhsein
  • 전체
    오늘
    어제
    • 분류 전체보기
      • ASAC
      • Next.js
      • Docker
      • MySQL
      • Java
      • Spring-Proxy, AOP
      • Spring Boot, JPA
      • Spring Security
      • DB
      • 알고리즘
      • PS
      • TOPCIT
      • AWS 자격증
      • 비공개
  • 블로그 메뉴

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

  • 공지사항

    • 안녕하세요
  • 인기 글

  • 태그

    DP
    티스토리챌린지
    오블완
    Alias
    동적프로그래밍
    해시
    tsp
    포인터
    외판원순회
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
suhsein
프로그래머스 - 구명보트 (Java, 투포인터)
상단으로

티스토리툴바