- 알고리즘 분류 : 구현- 사용 언어 : JAVA(효율성 테스트가 없어 생각나는대로 작성)1. 초기 세팅giftMap:→ 친구들끼리 누가 누구에게 몇 번 선물했는지 저장하는 2차원 Map.(예: giftMap["A"]["B"] = 2 → A가 B에게 선물 2번 줌)summaryMap:→ 각 친구의 총 준 선물 수(GIVE), 받은 선물 수(RECEIVE), 그리고선물지수(SCORE = GIVE - RECEIVE) 를 저장하는 Map.요약:→ 선물 내역과 선물지수를 따로 정리할 준비를 함.2. 선물 기록 파싱gifts 배열을 순회하면서 "sender receiver" 형태를 split 해서→ sender가 receiver에게 선물한 횟수를 1 추가함.그리고 summaryMap에서:sender의 GIVE ..
Algorithm
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 하루가 지날 때 마다 익은 토마토로부터 상하좌우위아래 인접한 토마토가 익게 된다. 모든 토마토가 익으려면 최소 몇 일인 지 구하는 문제 저장될 때부터 모든 토마토가 익어있으면 0 출력 모든 토마토가 익을 수 없으면 -1 출력 필자는 3차원 배열과 토마토의 갯수를 비교하여 풀이 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java..
- 알고리즘 분류 : DFS/구현 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int[][] map = new int[9][9]; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int i=0; i
- 알고리즘 분류 : 다익스트라 알고리즘 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static class Pos implements Comparable{ int idx; int length; public Pos(int idx, int length) { this.idx = idx; this.length = length; } @Override public int compareTo(Pos o) { return this.length - o.length; } ..
- 알고리즘 분류 : Stack - 사용 언어 : JAVA - 문제 요점 배달 스택과 수거 스택 2개를 이용 특정 집까지 가는 경우 특정 집으로 갈 때는 배달을, 되돌아 올 때는 수거를 할 수 있으므로 최대 용량 치까지 계산 배달 스택과 수거 스택 중 더 먼 집을 기준으로 2배 곱한 후 거리 계산. (왕복이기에 2배) 배달 스택과 수거 스택 둘 중 하나라도 없을 수 있으니 이에 대한 대비 필요 (효율성 테스트가 없어 생각나는대로 작성한 코드이니 참고용으로 봐주시면 감사하겠습니다.) 소스 설명은 주석을 참고해주세요. import java.util.Stack; // Link : https://school.programmers.co.kr/learn/courses/30/lessons/150369 public c..
- 알고리즘 분류 : 구현, 그리디 - 사용 언어 : JAVA - 문제 요점 - 우선순위 큐 이용 - 우선순위 정렬 기준 : 급여 내림차순, 날짜 내림차순 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static class Task implements Comparable { int pay; int date; public Task(int pay, int date) { this.pay = pay; thi..
- 알고리즘 분류 : DFS, 구현 - 사용 언어 : JAVA - 문제 요점 - 어느 알파벳이 가장 큰 영향을 가지는 지 확인 (자릿수에 10을 거듭제곱하여 확인. Math.pow() ) - 우선순위 큐를 이용해서 가장 영향도가 높은 알파벳부터 나오도록 설정 - 가장 영향도가 높은 알파벳에게 가장 높은 숫자인 9를 주고, 다음 알파벳은 8 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.PriorityQueue; public cla..
- 알고리즘 분류 : 구현, 그리디 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static class Homework implements Comparable{ int dueDate; int score; public Homework(int dueDate, int score) { this.dueDate = dueDate; this.score = score; } // 정렬 기준..