Loading...
2023. 6. 3. 03:27

경이로운 그리디 알고리즘3 -가장 효율적으로 좌우로 이동하는 방법-

1. 문제 1461번: 도서관 (acmicpc.net) 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 2. 풀이 문제를 좀 파악부터 해보면 배열의 원소가 책의 위치이며 0에서 시작해서 이동을 해가지고 m개 이내의 책을 들고 다시 0으로 돌아와서 책을 둔 다음에, 이런 식으로 모든 책을 회수해야할때, 최소 이동거리를 구해라 마지막에 모든 책을 회수할때는 0으로 돌아오지 않아도 된다 ---------------------------------------------------------------------------..

2023. 5. 31. 00:20

경이로운 그리디 알고리즘2 -인접한 원소간 차이로 그룹을 나누는 방법-

1. 문제1 13164번: 행복 유치원 (acmicpc.net) 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net 2. 풀이 크기가 n인 배열을, 인접한 원소끼리 그룹으로 나누고자 하는데, 그룹간 최댓값과 최솟값의 차이의 합이 최소가 되도록 k개의 그룹으로 나누고자 할때, 그 차이의 합의 최솟값을 구한다면? 모르는데 생각해낸다면 정말 재능있는거고.. 테크닉을 알아도 감탄밖에 안나온다 ----------------------------------------------------------------------..

2023. 5. 16. 01:22

문자열 그리디 연습1 - 최소 횟수로 교환해서 두 문자열 같게 만들기

1. 문제 13413번: 오셀로 재배치 (acmicpc.net) 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 2. 풀이1 문자열의 문자를 바꾸는 방법이 2가지 1) B는 W로, W는 B로 뒤집기 2) 서로 다른 두 위치의 문자를 교환하기 이런 상황에서 두 문자열이 서로 같게 만드는, 최소 횟수로 교환하는 방법을 찾을려면? 탐욕적으로 생각해보면 생각보다 간단한 문제다 두 문자열을 처음부터 동시에 순회해서, 두 문자가 서로 같다면 그대로 넘어가면 될거고 두 문자가 서로 다른 순간에 교환을 해야할거임 0번째는 W와..

[Java]그리디 알고리즘 - 배열에서 2개씩 짝지을때 합의 최댓값이 최소가 되게할려면

1. 문제 """ 2 * N개의 숫자가 주어졌을 때, 겹치지 않으면서 2개의 원소가 하나의 그룹을 이루도록 하여 총 N개의 그룹을 만드려고 합니다. 적절하게 그룹을 만들어 각 그룹에 있는 원소의 합 중 최댓값이 최소가 되도록 하는 프로그램을 작성해보세요. 예를 들어 N = 2, 주어진 원소가 3, 5, 5, 2 였을 때 그룹을 [5, 5], [3, 2]로 나눈다면 각 그룹에 있는 원소의 합은 순서대로 10, 5 이므로 이 중 최댓값은 10이 됩니다. 만약 그룹을 [3, 5], [5, 2]로 나눈다면 각 그룹에 있는 원소의 합은 순서대로 8, 7 이 되므로 이 중 최댓값은 8이 되며 이보다 최댓값을 더 작게 만들 수는 없습니다. """ 2. 풀이 항상 문제부터 똑바로 이해해야돼 2N개의 숫자를 N개 N개씩..

2023. 1. 27. 01:45

그리디 알고리즘 - 거리의 합이 최소가 되는 위치를 찾는 방법

1. 문제1 18310번: 안테나 (acmicpc.net) 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 2. 풀이 수직선 위에 위치한 점 중에서 모든 점까지 거리 합이 최소인 점의 좌표는 어떻게 찾을 수 있을까 직관적으로는 점의 좌표를 오름차순으로 정렬하고 당연히 중앙에 위치한 점이 모든 점까지 거리 합이 최소인 점일텐데 왜 그런지를 한번 생각해본다면.. 수직선 위에 집이 있을때, 맨 왼쪽 집에서부터 시작해서 오른쪽으로 한칸씩 이동한다고 생각해보자 1부터 시작해서 오른쪽으로 이동한다고 해보면... 왼쪽 집 1개와 거리가 +1 하지..

그리디 알고리즘 한층 더 깊게 생각하는법 배우기 -선물할인-

1. 문제 25947번: 선물할인 (acmicpc.net) 25947번: 선물할인 입력은 표준입력을 사용한다. 첫 번째 줄에 선물의 개수를 나타내는 양의 정수 $n$ ($1 ≤ n ≤ 100\,000$), 예산을 나타내는 양의 정수 $b$ ($1 ≤ b ≤ 10^9$), 반값 할인을 받을 수 있는 최대 선물의 수를 www.acmicpc.net n개의 선물 가격이 있고, 예산이 b원일때, 반값 할인을 a번 받을 수 있다면, 최대로 살 수 있는 선물의 개수는..? 2. 풀이 가장 먼저 생각한건... 가격표를 정렬하고 큰 가격부터 a개는 반값으로 할인시킨다음에, 다시 정렬하고 b원만큼 사는 것 from sys import stdin n,b,a = map(int,stdin.readline().split()) p..