본문 바로가기

Algorithm85

[Java] 프로그래머스 - PCCP 기출문제 2번/석유 시추 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최초 코드 import java.util.*; class Solution { private final int[] dy = {1,0,-1,0}; private final int[] dx = {0,1,0,-1}; private boolean[][] visited; //각 열의 석유 매장량 배열 private int[] reserves; private int maxY; private int maxX;.. 2023. 12. 14.
[Java] 백준 1931 - 회의실 배정 Arrays.sort(meeting, (e1, e2) -> { if(e1[1]==e2[1]){ return e1[0]-e2[0]; } return e1[1] - e2[1]; }); https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 시나리오 1. 입력으로 회의시간을 배열화 2. 배열의 1번 요소 즉, 회의 종료시간을 기준으로 정렬 3. 배열을 순회하며 기준인 회의의 종료시간보다 현재 회의 시작시간이 크거나 같다면 기준을 현재 회의로 변경하고 answer++ 정답 코드 import java.io.BufferedReader; import java.io.IOExcept.. 2023. 12. 12.
[Java] 프로그래머스 - 요격 시스템 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시나리오 1. targets 2차원 배열을 e기준으로 오름차순 정렬 2. 첫 target을 기준으로 잡고 나머지 targets를 순회하며 기준의 end와 현재 target의 start를 비교한다. 3. end가 start보다 크면 continue, 그렇지 않으면 기준을 현재 미사일로 변경하며 요격 미사일 개수++한다. 평면좌표상 x축과 평행한 targets를 생각해보자. 기준인 target과 겹.. 2023. 12. 12.
[Java] 프로그래머스 - 후보키 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최종 코드 import java.util.*; class Solution { private List combinations = new ArrayList(); private List candidateKeys = new ArrayList(); public int solution(String[][] relation) { int columnSize = relation[0].length; //1. 컬럼의 .. 2023. 12. 6.
[Java]프로그래머스 - 메뉴 리뉴얼 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/72411) 내 코드 import java.util.*; import java.util.stream.Collectors; class Solution { Map popular = new HashMap(); List best = new ArrayList(); public String[] solution(String[] orders, int[] course) { //비교할 문자열 선정 for(int i=0; .. 2023. 11. 30.
[Java]프로그래머스 - 큰 수 만들기 import java.util.Map; import java.util.HashMap; import java.util.Arrays; class Solution { public String solution(String number, int k) { //1. String to StringBuilder StringBuilder sb = new StringBuilder(number); char target= 0; int keysIdx=0; //2.카운트 map Map map = new HashMap(); for(int i=0; i0일 때까지 해당 행위 반복 while(k>0){ for(int i=0; i 2023. 11. 30.
[Java]프로그래머스 - 소수 찾기(lv.2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 import java.util.*; import java.util.stream.Collectors; class Solution { private char[] charArr; private int cnt; private List permutations = new ArrayList(); public int solution(String numbers) { //1. String to charArray charArr = numbers.toCharArray(); //2. 각 한자리 수가 소수인지 구함 for(c.. 2023. 11. 29.
[Java] 프로그래머스 - 합승 택시 요금 최초 코드 - DFS풀이 (정확성: 100, 효율성: 0) class Solution { private int answer= Integer.MAX_VALUE; private int temp = Integer.MAX_VALUE; private int[][] adj; private boolean[] visited; public int solution(int n, int s, int a, int b, int[][] fares) { //adj생성 0번행,0번열은 무시 adj = new int[n+1][n+1]; visited = new boolean[n+1]; for(int[] fare: fares){ int n1 = fare[0]; int n2 = fare[1]; int f = fare[2]; adj[n1][.. 2023. 11. 20.
[Java] 백준 - 1916 최소비용 구하기 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 정답 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Main { private static List adj; private static int[] minCost; private static boolean[] visited; public static void m.. 2023. 11. 20.