사이트명 백준 문제 링크 www.acmicpc.net/problem/17142 주요 알고리즘 조합, BFS 사용 언어 Java 자바 알고리즘이 낯선 사람들을 위해 생각 노트를 같이 두었습니다. 1. 문제 2. 입력 / 출력 🧶 Check Point - 풀이 알고리즘의 결정 1. 바이러스 개수는 최대 10개 = 10C5 조합 결과 250개 2. 최대 칸 수 50칸 = 50^2 그래프 탐색시 최대 걸리는 시간 2500 ===> 완전 탐색으로 가능 - 출력 값 출력이 결국 모든 칸에 바이러스가 있게 되는 최소 시간. 따라서 칸과 시간을 중점으로 체크해야 한다. 3. 풀이 3-1. 생각 노트 1. 바이러스(2)인 수를 전부 virusList에 넣기 2. nCm 의 형식으로 모든 경우에 대한 조합 생성 3. 조합..
사이트명 백준 문제 링크 www.acmicpc.net/problem/16236 주요 알고리즘 시뮬레이션, BFS, 사용 언어 Java 자바 알고리즘이 낯선 사람들을 위해 생각 노트를 같이 두었습니다. 1. 문제 2. 입력 / 출력 3. 풀이 3-1. 생각 노트 골드4의 아기상어 문제. 일단 삼성의 주요 기출 형태(구현) 중 하나이다. 조합같은 개념이 적용되진 않아서 어려운 편은 아니다. 그저 문제를 잘 읽고, 그대로 잘 구현 하면 된다. 3-2. 변수명 변수명 설명 Class Fish 물고기들의 시간값(거리)를 기록하기 위한 객체 ArrayList feedList 식사 가능한 경우 들어가는 후보 먹이 리스트! 추후 정렬을 통해 어느것을 먹을지 결정한다. Queue q 이동 가능한 경우에 들어가는 이동 대..
사이트명 백준 문제 링크 www.acmicpc.net/problem/1260 주요 알고리즘 그래프, DFS, BFS 사용 언어 Java 자바 설명이 장황합니다.. 도움되는 것만 파악하세요 :-) 1. 문제 2. 입력 / 출력 3. 풀이 3-1. 생각 노트 이전에 인접 행렬로 풀었던 것을 다시 보며 리뷰를 진행하려 한다. 특히 인접 리스트로 풀 땐, 가장 작은 노드부터 방문한다는 정렬 조건 때문에 고민했는데, 이전에 푼 코드를 보니 정렬에 대한 고민의 흔적이 없었다.. 그 이유는, 이미 행렬의 경우 1부터 순차적으로 접근하기 때문에 작은 노드부터 접근하게 된다. 반면, 리스트의 경우 내가 삽입한 순서대로 들어가기 때문에 정렬이 필요하다. 그림으로 표현하면 아래와 같다. 3-2. 변수명 변수명 설명 int[..
사이트명 백준 문제 링크 www.acmicpc.net/problem/1260 주요 알고리즘 그래프, DFS, BFS 사용 언어 Java 자바 설명이 장황합니다.. 도움되는 것만 파악하세요 :-) 1. 문제 2. 입력 / 출력 3. 풀이 3-1. 생각 노트 이전에 인접 행렬로 푼 문제인데, DFS/BFS를 다시 공부할 겸 이번엔 인접 리스트로 풀려고 도전했다. 인접 리스트가 인접 행렬보다 시간도 적게 걸리는 이유도 있고, 리스트 형식으로 푸는 걸 연습하고 싶었다. *참고로 시간복잡도는 다음과 같다. 인접 행렬 : 간선 개수와 무관하게, O(V^2) 인접 리스트 : O(V+E) 풀이 과정은 기본적으로 다음과 같다. 1. 간선 리스트 배열 생성 -> 초기화 2. 간선 리스트에 양방향으로 노드 넣기 3. DFS..
사이트명 백준 문제 링크 www.acmicpc.net/problem/2252 주요 알고리즘 위상 정렬, 그래프 사용 언어 Java 자바 설명이 장황합니다.. 도움되는 것만 파악하세요 :-) 1. 문제 2. 입력 / 출력 3. 풀이 3-1. 생각 노트 맨 처음 단순히 for문을 이용하여 문제를 해결하려 했다. 문제에서 크다/작다로 입력되는 모든 수를 카운팅(크면 +, 작으면 -)하고, 최종적으로 카운팅 된 수 크기대로 출력하는 방식을 생각했다. int[][] height = new int[N][2]; for (int i = 0; i < N; i++) { height[i][0] = i; } for (int i = 0; i < M; i++) { int t = sc.nextInt(); int s = sc.nex..