[백준 16236번 아기상어 URL] 1. 종료 조건- N x N 배열을 모두 탐색했는데도 잡아먹을 수 있는 물고기가 없는 경우- 탐색을 진행하면서 잡아먹을 수 있는 물고기를 찾지 못했는데 모든 방향이 막혀있는 경우 2. 탐색 조건- 아기상어의 크기보다 작거나 같을 경우 이동할 수 있다. (아기상어의 크기 >= 물고기의 크기) 3. 비교 조건 - 아기상어가 잡아먹을 수 있는 물고기를 최초로 만난 경우, 그 물고기를 만나기까지의 이동거리를 저장해야한다. - 최초로 물고기를 만났다고 해서 탐색을 종료하는 것이 아니라, 그 이동거리만큼의 모든 위치를 탐색해야한다. - 예를 들어, 아래 그림을 보자. 아기상어의 위치로부터 왼쪽에 있는 물고기를 먼저 발견했다고 해서, 바로 그 물고기를 먹은 후에 탐색을 종료하면 ..
[백준 16235번 나무재테크 URL]https://www.acmicpc.net/problem/16235 [기본 로직]1. 1년(봄~겨울)이 지난 후 추가되는 영양분을 저장하는 배열 A를 선언합니다.2. 각 계절마다 참고(?)해야할 현재의 영양분을 저장하는 배열 map을 선언합니다.3. 각 위치(row, col)마다 나무의 갯수를 저장하기 위해 List 배열을 선언합니다. [구체적인 로직]1. doSpringAndSummer() 메소드이 메소드에서는 봄, 여름에 일어나는 일을 함께 처리합니다.각 위치(row, col)마다 저장된 나무를 순회하기 전에 나무의 나이를 기반으로 오름차순으로 정렬한 뒤,나무의 나이와 그 위치에 있는 영양분을 비교하여 나무의 나이를 +1 증가시킬것인지 죽일것인지 결정합니다.여기서..
[SWEA 5658. [모의 SW 역량테스트] 보물상자 비밀번호 URL] [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Array..
[SWEA 5656번 벽돌 깨기 URL] [풀이 방법]1. 공을 떨어뜨릴 자리를 찾는다. 만약 검사하는 열에 블럭이 하나도 없을 경우에는 공을 떨어뜨리지 않는다. - dropBall() 메소드를 보면, 어느 임의의 열에 대한 행을 모두 검사한다. 모든 행에 블럭이 없을 경우에는 false를 리턴한다. - 행에 블럭이 하나라도 있으면, 공을 떨어뜨린다. 맨 처음 공이 닿는 블럭으로부터 BFS 탐색을 시작하면서범위안에 있는 블럭들을 Queue에 담아주면서 탐색을 진행한다. 2. 공을 떨어뜨리고, 게임을 1회 진행했으면 모든 블럭들을 바닥으로 떨어뜨린다. dropBlock() 메소드 참조. 3. 만약에, 모든 열에 대해서 dropBall() 메소드가 false를 리턴했다면 그것은 이미 모든 블럭이 사라졌다는뜻..
[알고스팟 RUNNINGMEDIAN URL] [참고할만한 알고리즘 이론]2019/02/16 - [알고리즘 이론] - 우선순위 큐와 힙2019/02/16 - [알고리즘 이론] - [정렬] 힙 정렬 이 문제를 풀기 위해서 다음과 같은 조건을 수립합니다.1) 입력받는 데이터들을 두 개의 힙으로 나누되 하나는 최소힙, 나머지 하나는 최대힙으로 구성한다.2) 최대힙의 크기는 최소힙과 같거나 1만큼 크다.3) 최대힙의 루트는 최소힙의 루트보다 작거나 같다. 예를 들어, 3, 1, 5, 4, 2의 순서로 데이터가 입력된다고 가정합니다. 1. 데이터 3이 입력되었을 때1) maxHeap과 minHeap 크기가 같으므로 maxHeap에 저장합니다. 2. 데이터 1이 입력되었을 때1) maxHeap의 크기와 minHeap..
[SWEA 1868번 파핑파핑 지뢰찾기 URL] [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118import java.beans.Visibility;import java.io.*;import java.util.LinkedList;import java.util.Queue;import java.util.Stri..
[백준 2583번 영역 구하기 URL] [소스 코드] 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293#include #include #include using namespace std; #define MAX 100 int N, M, K;int map[MAX][MAX];int num[MAX];bool visited[MAX][MAX];int dir[4][2] = { {0,1}, {0,-1}, {1,0}, {-1,0}}; typedef stru..
[백준 1012번 유기농 배추 URL]https://www.acmicpc.net/problem/1012 [유사 문제]2019/02/11 - [알고리즘 문제/백준(BOJ)] - [백준 2667번] 단지번호붙이기 이 문제는 [백준 2667번 단지번호 붙이기]와 거의 똑같은 문제라고 볼 수 있습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109#include #inc..
- Total
- Today
- Yesterday
- 알고리즘
- BFS
- 삼성
- 나무 재테크
- 탈주범 검거
- 연산자 끼워넣기
- 시뮬레이션
- 우선순위 큐
- 구현
- 힙
- DFS
- 백준
- 14888
- 배열
- 힙정렬
- 리스트
- 최소힙
- 알고스팟
- 자바
- 트리
- SWEA
- 최대힙
- 중간값
- 탐색
- 정렬
- 브루트포스
- 구슬 탈출2
- 큐
- 영역 구하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |