본문 바로가기

알고리즘/그리디10

[백준 12904] A와 B / 자바 / 그리드 문제         레벨: G4알고리즘: 그리드 풀이시간: 30분힌트 참조 유무: 무https://www.acmicpc.net/problem/129041 번째 시도   [로직 설명]T에 룰을 거꾸로 적용해서 하나씩 빼주고 마지막에 비교한다.[배운점]String 함수 되짚기import org.w3c.dom.Node;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException .. 2024. 6. 23.
[백준 1744] 수 묶기 / 자바 / 그리디 문제         레벨: G4알고리즘: 그리디 풀이시간: 1시간힌트 참조 유무: 유https://www.acmicpc.net/problem/17441 번째 시도   [아이디어]정렬된 마이너스 배열정렬된 플러스 배열마이너스 x 마이너스 후 정답에 더하기플러스 x 플러스 후 정답에 더하기+ 예외생각) 1x1보다는 +1+1이 더 높으니 현재 숫자가 1일때는 다음 숫자가 1인지 검사하기import java.io.*;import java.util.*;public class Main { static int N; //양수 관련 값 저장, 내림차순 정렬 static PriorityQueue plus = new PriorityQueue(Comparator.reverseOrder()); //음수 관.. 2024. 6. 22.
[백준 1339번] 단어 수학 / 자바 / 그리디 ** 문제         레벨: G4알고리즘: 그리디풀이시간:  50분힌트 참조 유무: 유(아이디어 참조)https://www.acmicpc.net/problem/1339 1 번째 시도   [알고리즘 선택 과정]입력 제한을 보니 DFS도 가능하다.그러나 Greedy문제이기 때문에 Greedy로 풀어보겠다. [Greedy란?]탐욕적 알고리즘이라고도 불린다.현재의 단계에서 최적을 선택해 마지막의 최적의 정답을 도출한다는 아이디어이다.근시안적으로 현재만 보고 선택하는 것이 탐욕적 알고리즘이라고 불리는 게 어울린다. [Greedy 과정]알파벳이 주어진 순대로 탐색할 것이다. 납득이 가는 과정일 것이다. 그렇다면 어떨 때 알파벳의 숫자를 바꿔줘야 할까?새로운 알파벳이 해당 숫자의 알파벳보다 자릿수가 높을 때 숫자를 바.. 2024. 6. 3.
항해99 32일차 TIL(강의실 배정 / 백준) 문제         레벨:  G5알고리즘: 그리디풀이시간: 1시간힌트 참조 유무: 무https://www.acmicpc.net/problem/110001 번째 시도   끝나는 시간으로 정렬 현재 인덱스 끝나는 시간이 다음 인덱스 시작 시간보다 크다면 answer++ 방의 개수를 새는 자료구조 고민  min변수에 방 최소 개수 담고 우선순위에큐에 끝나는 시간 담기 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws IOException { .. 2024. 5. 1.
항해99 31일차 TIL( 저울 /백준) 문제         레벨: G2알고리즘: 그리디 풀이시간: 1시간힌트 참조 유무: 유<a href="https://www.acmicpc.net/problem/2437" target="_blank" rel="noopener norefer.. 2024. 4. 30.
[백준] 보석 도둑 /자바 문제         https://www.acmicpc.net/problem/1202레벨: G2알고리즘: 그리드 풀이시간: 40분힌트 참조 유무: 무1 번째 시도   보석의 가격으로 정렬해야 하나? 보석의 무게로 정렬해야 하나?가격으로 정렬 후 가방 순회하며 담을 수 있는 지 판단자료구조 고민 현재 가방에서 선택할 수 있는 보석을 우선순위큐에 넣기 우선순위 큐를 보석의 값으로 내림차순 정렬가장 보석의 값이 큰 거 하나 선택이 과정을 가방의 개수 만큼 반복import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); .. 2024. 4. 29.
[백준] 카드 정렬하기 / 자바 문제         https://www.acmicpc.net/problem/1715레벨: G4알고리즘: 그리드풀이시간: 1시간힌트 참조 유무: 무1 번째 시도   오름차순 정렬 필요두가지 생각이 들었습니다. 정렬 후1. 두 묶음씩 묶어서 계속 더해가며 줄일 것인가2. 1 번째와 2 번째만 계속 더해가며 줄일 것인가예시를 들어 비교1 3 5 10 4 + 15 + 4 + 15 = 38 4 + 4+5 + 9 +10 =32 결론: 2 번째 방법 선택 // 3, 5킬로그램 봉지가 있다.// 최대한 5킬로그램 봉지를 많이 들고가야 한다.// 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.import java.util.*;import java.io.*;class Main { public static v.. 2024. 4. 29.
항해99 30일차 TIL(설탕배달 / 백준) 문제         https://www.acmicpc.net/problem/28391 번째 시도   5킬로그램 봉지가 0개에서부터 5킬로그램 봉지의 최대 개수까지 탐색하며 답을 업데이트 한다.만약 답이 한 번도 업데이트 되지 않는다면 정답이 없는 것이기 때문에 -1을 출력한다.// 3, 5킬로그램 봉지가 있다.// 최대한 5킬로그램 봉지를 많이 들고가야 한다.// 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다. import java.util.*;import java.io.*;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(.. 2024. 4. 29.
항해99 23일차 TIL ( 배달 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 가중치가 있는 그래프 해결법: 다익스트라 알고리즘 관계도에따라 map을 만든다. start에서 갈 수 있는 곳들을 탐색하고 disct배열에 기록해둔다. disct 에서 방문한 노드를 제외한 노드중에 가장 가까운곳으로 간다. 위의 사항들을 반복한다. import java.util.*; class Solution { boolean[] visited; int[] disct; int[][] map; int n; public int solution(int N, int[][] road, int K) .. 2024. 4. 20.