본문 바로가기

Algorithm

(239)
백준 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[]) ..
백준 2606 - 바이러스, 너비우선, 깊이우선, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, bfs,dfs // Process // 1. Input computerNumber, pairNumber, pairArray // 2. Make graph with inputs // 3. (DFS) start with 1st computer, put 1st in the stack // 4. Iterate while stack is empty // 4.1. pop and count // 4.2. check all adjacent of popped one // 4.2.1. If it's not visited yet -> put that in the stack // 5. Return count import java.util.*; import java.io.*; class Virus { public static void mai..
백준 1012 - 유기농배추, 너비우선, 깊이우선, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmi.. // Process // 1. Input row, col, matrices // 2. Make matrix for cabbages // 3. 전체 반복한다. // 3.1. 배추이면서 아직 접근 안했으면 -> 큐 준비하고, 탐색 시작한다. // 3.1.0. 필요개수 센다. // 3.1.1. 범위 안에 들어가고, 배추인 땅을 방문한다. // 4. 필요개수 반환한다. package algorithm_sites.acmicpc; import java.io.*; import java.util.*; class OrganicCabbage { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(n..
백준 2178 - 미로탐색, 너비우선, 깊이우선, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc.. 입력이 Scanner로 넣으면 계속 런타임에러가 나서 바꾸고 됨 // Process // 1. Input n, m, maze array // 2. Prepare queue for BFS // 3. 시작부터 목적지(가장오른쪽가장아래) 도착, 또는 큐가 빌 때까지 반복한다. // 3.1. 큐에서 빼서, 이동이 유효하면 4방향 중 이동 가능한 곳을 찾아서 큐에 넣어둔다. // 3.2. 목적지에 도착했는지 확인한다. 도착했으면, 해당 depth를 세고 종료한다. // 4. 센 카운트 출력한다. import java.io.*; import java.util.*; class Node { int row = 0; int col = 0; int depth = 0; public Node(int row, int col, i..
백준 2437 - 저울, 문제풀이, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc // Process // 1. Input total, weights // 2. 입력 weights는 체크한다. // 3. Sort weights // 4. 체크배열을 순회한다. // 4.1. weights로 무게 잴 수 있는지 확인한다. // 4.2. 가능하면 넘어가고, 불가하면 저장하고 빠져나간다. // 5. 불가 저장값 반환한다. import java.io.*; import java.util.*; class Scale { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int total = Integer.pars..