본문 바로가기

그리디5

[프로그래머스] 탐욕법 - 체육복 (Java) 문제 링크 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 접근한 방법 탐색적 알고리즘 - 탐욕적 선택 속성을 사용 : 답의 모든 부분을 고려하지 않고 탐욕적으로만 선택하더라도 최적해를 구할 수 있다 4가지 경우를 생각하여 증명해보자. - 가정 1) 왼쪽에서 오른쪽으로 순회를 한다. 2) i번째에는 체육복이 없다. - 체육복의 여유가 있는 4가지 경우의 수 i-1번째 i+1번째 1 O O 2 O X 3 X O 4 X X 경우 1 순회 방향이 왼쪽부터이므로, i-1번째 이전까지는 순회가 완료된 것이다. 만약, i.. 2020. 10. 30.
탐욕법 탐욕법(Greedy Method) 재귀 호출과 똑같이 여러 개의 조각으로 쪼개고, 각 단계마다 답의 한 부분을 만들어감 ≒ 동적 계획법, 완전 탐색but, 동적 계획법과 완전 탐색은 모든 선택지를 고려해보고 그 중 전체 답이 가장 좋은 것을 찾음 각 단계마다 지금 당장 가장 좋은 방법만을 선택 탐욕적 알고리즘이 사용되는 경우 탐욕법을 사용해도 항상 최적해를 구할 수 있는 문제를 만난 경우, 탐욕법은 동적 계획법보다 수행 시간이 훨씬 빠르기 때문에 유용 시간/공간적 제약때문에 다른 방법으로 최적해를 찾기 너무 어렵다면, 적당히 괜찮은 답(근사해)을 찾는 것으로 타협할 수 있음 탐욕법은 이럴 때 최적은 아니지만 임의의 답보다는 좋은 답을 구하는 용도로 유용 정당성의 증명 : 탐욕적인 알고리즘이 항상 최적해를.. 2020. 10. 30.
[이.코.테] Chapter 03 그리디 - 1이 될 때까지 (Java) 1이 될 때까지 문제 (교재 99p) 난이도 ●○○ | 시간 제한 1초 | 메모리 제한 128MB | 기출 2018 E 기업 알고리즘 대회 어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. N에서 1을 뺀다.을 K로 나눈다. N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 입출력 조건) 입력 조건 - 첫째 줄에 N(2 ≤ N ≤ 100,000)과 K(2 ≤ K ≤ 100,000)가 공백으로 구분되며 각각 자연수로 주어진다. 이 때 입력으로 주어지는 N은 항상 K보다 크거나 같다. 출력 조건 첫째 줄에 N이 1이 될 때.. 2020. 10. 30.
[이.코.테] Chapter 03 그리디 - 숫자 카드 게임 (Java) 알고리즘숫자 카드 게임 문제 (교재 96p) 난이도 ●○○ | 시간 제한 1초 | 메모리 제한 128MB | 기출 2019 국가 교육기관 코딩 테스트 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N X M 형태로 놓여 있다. 이 때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑.. 2020. 10. 30.
[이.코.테] Chapter 03 그리디 - 큰 수의 법칙 (Java) 그리디 알고리즘 : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 큰 수의 법칙 문제 (교재 92p) 난이도 ●○○ | 풀이 시간 30분 | 시간 제한 1초 | 메모리 제한 128MB | 기출 2019 국가 교육기관 코딩 테스트 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 배열의 크기 N, 숫자가 더해지는 횟수 M, 그리고 K가 주어질 때 큰 수의 법칙에 따른 결과를 출력하시오. 입출력 조건) 입력 조건 - 첫째 줄에 N(2 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000)의 자연수가 주어지며, 각 .. 2020. 10. 29.
반응형