탐욕 3

[백준] 9576 책 나눠주기 <Java> - 이분매칭, greedy

문제 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 정수 번호를 중복되지 않게 매겨 두었다. 조사를 해 보니 책을 원하는 서강대학교 학부생이 총 M명이었다. 백준이는 이 M명에게 신청서에 두 정수 a, b (1 ≤ a ≤ b ≤ N)를 적어 내라고 했다. 그러면 백준이는 책 번호가 a 이상 b 이하인 책 중 남아있는 책 한 권을 골라 그 학생에게 준다. 만약 a번부터 b번까지의 모든 책을 이미 다른 학생에게 주고 없다면 그 학생에게는 책을 주지 않는다. 백준이가 책을 줄 수 있는 최대 학생 수를 구하시오. 풀이 우선 이분매칭의 방식으로 풀었다. 이분 매칭 방식은 ..

[해커랭크] non-divisible-subset

문제 https://www.hackerrank.com/challenges/non-divisible-subset/problem Non-Divisible Subset | HackerRank Find the size of the maximal non-divisible subset. www.hackerrank.com Given a set of distinct integers, print the size of a maximal subset of where the sum of any 2 numbers in is not evenly divisible by k. 풀이 부분 집합 중에서 두개의 합이 항상 k 로 나눠지면 안되는 문제다. n < 10 ^ 5 기 때문에 모든 부분집합을 구해서 푸는 방법은 불가능하다. 두개의..

백준 2873 (롤러코스터)

문제 상근이는 우리나라에서 가장 유명한 놀이 공원을 운영하고 있다. 이 놀이 공원은 야외에 있고, 다양한 롤러코스터가 많이 있다. 어느 날 벤치에 앉아있던 상근이는 커다란 황금을 발견한 기분이 들었다. 자신의 눈 앞에 보이는 이 부지를 구매해서 롤러코스터를 만든다면, 세상에서 가장 재미있는 롤러코스터를 만들 수 있다고 생각했다. 이 부지는 직사각형 모양이고, 상근이는 R행 C열의 표 모양으로 나누었다. 롤러코스터는 가장 왼쪽 위 칸에서 시작할 것이고, 가장 오른쪽 아래 칸에서 도착할 것이다. 롤러코스터는 현재 있는 칸과 위, 아래, 왼쪽, 오른쪽으로 인접한 칸으로 이동할 수 있다. 각 칸은 한 번 방문할 수 있고, 방문하지 않은 칸이 있어도 된다. 각 칸에는 그 칸을 지나갈 때, 탑승자가 얻을 수 있는 ..