백준 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..
TDD, TestDrivenDevelopment, 테스트 기반 개발, unit test, 단위테스트, 설계, TFD, TestFirstDevelopment, 테스트 우선 개발
2021.04 우아한테크캠프 pro 프리코스 중 자바지기님의 TDD 관련 강의를 이해한대로 간략 정리 TDD -> Test code + Production code 로 이루어져 있다. 테스트 코드는 말그대로 테스트를 하기 위한 코드이고, 프로덕션 코드는 비지니스 등 로직 코드이다. TDD는 단위테스트와는 다르다. TDD가 단위 테스트를 이용하는 큰 범주로 볼 수 있겠다. TDD는 단위 테스트를 먼저 작성하고, 그에 맞게 역으로 프로덕션 코드를 작성하고, 리팩토링 하는 과정을 반복한다. TDD는 테스트 기반이지만, 테스트기술 뿐만은 아니고 분석기술이면서 설계기술이다. (테스트 + 분석 + 설계) TDD를 잘하기 위해서는 요구사항을 잘 분석해서 TODO 리스트를 잘 만들어야 한다. TDD를 하면 얻어지는 장..
백준 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..