본문 바로가기
728x90

백준8

[백준] 9576 책나눠주기 (Greedy Algorithm) How to solve 1. 입력 받기 2. student를 b에 대해서 sort b->a 기준으로 오름차순 sort 3. M명의 학생에 대해서 책 a~b까지 보고 한개씩 나눠줌 4. 책에 대해서 check vector를 만들어 나누어준 책 표시 5. 나누어준 책 count Problem 책 나눠주기 성공분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 256 MB 5394 1495 1020 26.977% 문제 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 정수 번호를 중복되지 않게 매겨 두었다. 조사를 해 보니 책을 원하는 서강대학교 학부생이 총 M명이.. 2020. 8. 27.
[백준] 1202 보석도둑 (Greedy Algorithm) How to solve *priority queue 를 사용! 1. jewerly를 보석 무게 기준 기준 오름차순 정렬합니다. 2. 가방을 작은것 부터 채우기 위해 오름차순 정렬합니다. 3. K개의 가방을 차례로 채웁니다. 4. 가방의 무게보다 작은 주얼리는 모두 priority queue(pq)에 넣어줍니다. 5. 넣은 주얼리 중 가장 비싼 주얼리(pq에 내림차순으로 정렬되어있으므로 pq.top())를 선택합니다.(res에 더해줌) 6. 넣은 주얼리를 pop하고, 다음 가방을 채웁니다. Problem 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 9203 2203 1562 23.753% 문제 세계적인 도둑 상덕이는 보석점을 털기로 결심했다. 상덕이가 털 보석점에는 보석이 총 N개 있.. 2020. 8. 25.
[백준] 1654 랜선자르기 (이분탐색) How to solve 이분탐색으로 푸는 문제! 주의할점...!? left 를 0으로 두면 모든 랜선 길이가 1일 때 mid가 0이 되므로, 0으로 나누는 경우가 생긴다. 따라서 left는 1로! (계속 런타임 에러가 나서 고생하다가 친구의 도움으로 해결 ㅠㅠ) 1. 랜선의 길이를 입력 받아 vector v에 저장한다 2. 최대의 랜선 길이를 maxA에 넣는다 3. 최소 랜선길이(ll)은 1로, 최대 랜선길이 rr은 maxA로 초기화한다 4. 최소랜선길이 ll 이 최대 랜선길이 rr 보다 커지면 종료! 5. ll과 rr의 중간값을 변수 mid로 두고, 랜선을 mid로 잘라가며 sum에 랜선의 갯수를 저장한다 6. 랜선 갯수 sum이 필요한 랜선의갯수 N보다 작으면 rr을 mid-1로 초기화한다. 7. 랜.. 2020. 8. 25.
[백준] 2085 나무자르기 (이분탐색) How to solve 이 문제는 이분탐색으로 푸는 문제이다! 자세한 풀이는 다음과 같다 1. vector(v) 에 통나무 저장 2. 초기 left(ll)은 0이고, right(rr)은 max로 초기화 3. left(ll) 와 right(rr) 의 중간 값(mid)을 두고 통나무를 mid기준으로 잘라 sum 에 저장 4. 이분탐색으로 sum과 통나무 길이 M과 비교함 5. M이 더 크다면 더 작은 값을 탐색하고, M이 작다면 더 큰 결과 값을 탐색 Problem 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할.. 2020. 8. 24.
728x90