본문 바로가기

Algorithm/Baekjoon_acmicpc

(18)
백준 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..
백준 13305 - 주유소, 문제풀이, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc // Process // 1. Input 도시개수, 도시간기름소모량, 도시별기름가격. e.g. 4, 2 3 1, 5 2 4 1 // 2. 끝 도시 도착까지 반복한다. // 2.1. 현재있는 도시의 기름가격보다 싼 도시까지 가는 기름을 채운다. // 2.2. 이동한다. // 3. 왼쪽부터 오른쪽 전체 도시를 가는 최소비용을 반환한다. import java.io.*; import java.util.*; class GasStation { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 1. int cities = I..
백준 1715 - 카드 정렬하기, 문제풀이, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc // Process // 1. 총 카드묶음 개수, 각 카드묶음의 크기들 입력 받는다. // 2. 각 카드묶음의 크기들을 입력 받을 때, 추후에 최소값을 찾기 쉽도록 우선순위 큐를 이용한다. // 3. 남은 카드묶음이 1개가 될 때까지 반복한다. // 3.1. 최소크기 카드묶음을 빼둔다. (first) // 3.2. 최소크기 카드묶음을 빼둔다. (second) // 3.3. 비교한 횟수(first + second)를 전체 비교횟수에 더한다. // 3.4. 합쳐진 카드묶음크기를 다시 남은 카드묶음에 추가해둔다. // 4. 전체 비교횟수를 반환한다. import java.util.*; import java.io.*; class CardSorting { public static void main(String[]..
백준 1080 - 행렬, 문제풀이, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc // Process // 1. Input n, m, matrixA,B // 2. Check are matrixA,B same // 3. Check n >= 3, m >= 3 // 4. Iterate 0 to n-2 // 4.1. Iterate 0 to m-2 // 4.1.1. Flip 3x3 // 4.1.2. Check if they are same now -> if so return count // 5. Return count import java.util.*; import java.io.*; class Matrix { public static boolean[][] flip3x3(boolean[][] boolMat, int col, int row) { for (int i = col; i < col+3;..
백준 11047 - 동전 0, 문제풀이, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm, 풀이과정, Leetcode, 릿코드, 코딩테스트, Tech interview, search, greedy, baekjoon, acmicpc 그리디 - 채울 값어치를 최대한으로 채울 수 있는 가치 코인을 최대 개수로 채워나간다. // Process // 1. 코인 개수 입력받는다. 만드려는 값어치를 입력받는다. 코인 개수 만큼의 코인들의 값어치들을 입력받는다. (각 값어치는 전부 배수 관계, 오름차순) // 2. 코인값어치 배열이 오름차순이므로, 뒤에서부터 만드려는 값어치가 채워질 때까지 반복한다. // 2.1. 현재 차례의 코인 가치보다 채워야할 값어치가 더 남아있는지 확인해서 // 2.1.1. 더 남아있으면 -> 채울수 있는만큼의 개수 세고, 채워야할 가치를 그만큼 줄인다. // 3. 센 개수를 반환한다. import java.util.Scanner; class CoinZero { public static void main(String[]..