본문 바로가기

Algorithm/Baekjoon_acmicpc

(18)
백준 11725 - 트리의부모찾기,시뮬레이션,우선순위큐, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, Leetcode, search, greedy,acmicpc,bfs,dfs, priority queue // Process // 1. Input n, edges // 2. Make node lists with adjacents // 3. Make stack, and put first root node // 4. Iterate while stack is not empty // 4.1. Iterate adjacents // 4.1.1. Set parent number, if this adjacent is not visited yet // 5. Print all parent numbers from 2 to end // 6. Finish import java.io.*; import java.util.*; class FindParentTree { public static void main(String[] args)..
백준 10775 - 공항,시뮬레이션,우선순위큐, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, Leetcode, search, greedy,acmicpc,bfs,dfs, priority queue // Process // 1. Input countGate, countAirplane, airplanes // 2. Iterate airplanes while docking status true // 2.1. 비행기입력번호 이하의 게이트 위치에 도킹이 가능한 곳을 찾아 채운다. // 2.2. 도킹하면 개수 센다. // 2.2.1. 없으면 종료한다. // 3. 개수 출력한다. import java.util.*; class Airport { public static void main(String[] args) { int count = 0; Scanner scanner = new Scanner(System.in); int countGate = scanner.nextInt(); int countAirplanes..
백준 16236 - 아기상어,시뮬레이션,우선순위큐, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, Leetcode, search, greedy,acmicpc,bfs,dfs, priority queue // Process // 1. Input n of nxn, nxn matrix // 2. 먹을 수 있는 물고기가 있으면 반복한다. // 2.1. 먹을 수 있는 물고기 중, 가장 가깝고, 맨 위의 왼쪽에 있는 물고기와의 거리를 센다. // 2.2. 해당 위치로 상어를 이동시킨다. // 2.3. 총 거리에 센 거리를 더한다. // 2.4. 사이즈업까지 남은 고기수를 줄인다. // 2.5. 빈칸으로 만든다. // 3. 총 거리를 반환한다. import java.io.*; import java.util.*; class BabyShark { static List eatable; public static void main(String[] args) throws IOException { // 1. BufferedRe..
백준 11000 - 강의실배정,우선순위큐, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, Leetcode, search, greedy,acmicpc,bfs,dfs, priority queue // Process // 1. Input lecture count, lecture start and end times // 2. lecture times를 시작시간 기준 오름차순으로 정렬한다. // 3. 강의실 사용 우선순위큐를 만들어 종료시간을 기준으로 오름차순 poll 되도록 한다. // 4. 강의시간을 전체 반복한다. // 4.1. 강의실 사용 시간들 중, 가장 먼저 끝나는 시간의 강의실에 강의를 넣을 수 있는지 확인해서 // 4.1.1. 있으면 -> 끝나는 시간 변경한다. // 4.1.2. 없으면 -> 강의실 새로 추가해서 끝나는 시간 넣는다. // 5. 필요 강의실 개수 반환한다. // 퍼포먼스를 위해서는 priority queue 써서, 강의실 사용 시간 중 가장 먼저 끝나는 시간을 계속 최신..
백준 1197 - 최소신장트리,MST, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, Leetcode, search, greedy,acmicpc,bfs,dfs // Process // 1. Input countVertex, countEdge, edges // 2. Make vertexes for union check // 3. Sort edges // 4. Iterate till all vertex are connected (edge count = vertex count - 1) // 4.1. Get edge // 4.2. Check if it's making cycle // 4.2.1. If not -> add weight, update union // 5. Return totalWeight import java.io.*; import java.util.*; class MinimumSpanningTree { private static int[] vertexe..
백준 1700 - 멀티탭스케줄링, 그리디,알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, bfs,dfs,acmicpc // Process // 1. Input countPlug, countMachine, useOrder // 2. Iterate useOrder // 2.1. If pug is not empty // 2.1.1. 꽂혀있는 것들 중에서, 사용하는 물건인지 확인하고 그 중에 없으면 // 뒤에 가장 근접하게 재사용하는 것들부터 남기고 가장 멀리있거나 다시 안쓰는 것을 뽑는다. // 2.1.2. 뽑을 때 ++count // 2.2. Plug new one // 3. Return count import java.io.*; import java.util.*; class MultitabSchedule { public static void main(String args[]) throws IOException { Buff..
백준 11724 - 연결요소의개수, 너비우선, 깊이우선, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoo.. 금방 풀고 계속 시간초과가 나서 왜지왜지 하면서 이렇게 저렇게 계속 풀었는데.. Vertex 내에서 adjacents를 LinkedList로 해서 그랬던 거였고.. ArrayList로 해야 했던 것 같다. 인덱스 접근이 있어도 고작 1000개 노드라서 일반적으로 쓰는 연결리스트 쓴건데 이게 그렇게 차이가 있나 싶었지만 뭐 암튼.. 여러번 풀면서 bfs dfs 번갈아서 여러번 연습해서 나쁘지 않았다.. import java.io.*; import java.util.*; class Main { private static List vertexes = new ArrayList(); public static void main(String[] args) throws IOException { int count = 0..
백준 7576 - 토마토, 너비우선, 깊이우선, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, bfs,dfs // Process // 1. Input col, row, tomato infos // 2. Make matrix for checking if it's need to visit or not // 3. Check all riped tomato, and put them in the queue // 4. Iterate while queue is not empty // 4.1. poll, and 주변에 체크할 vertex 모두 queue에 삽입. 이 때, maxDepth 확인. // 5. 안익은 토마토가 있으면 -1, 아니면 maxDepth 반환한다. import java.io.*; import java.util.*; class Main { public static void main(String args[]) ..