[백준 14889번 스타트와 링크 URL] 1. N명을 반으로 나눠 한 팀은 스타트 팀, 나머지 한 팀은 링크 팀으로 나눈다.2. 팀을 나눌 때에는 DFS를 활용해서 모든 경우의 수를 구한다.2. 팀을 나눴다면, 조건에 의한 팀의 능력치를 계산한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103import java.io.BufferedReader;import java.io.IOException;..
[백준 15686번 치킨배달 URL] 사실 크게 어려운 문제는 아닙니다만, 여러 후보군 중에서 몇가지만을 선택하는 방법을 모르는 경우에는조금 난해할 수 있습니다. 이 문제에서 핵심인 K개의 치킨집이 있을 때 이중 M개만을 선택하고 다른 치킨집들을모두 폐업시켜야 하는 것입니다. M 개중에 K개를 선택하는 방법은 DFS를 활용하여 구현할 수 있습니다. [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101..
[백준 14499번 주사위 굴리기 URL] 이번 문제는, 규칙성을 찾아내는 문제이다.문제에서 보는 것처럼, 초기 주사위의 위치와 그 값을 배열로 나타낼 경우 아래와 같이 나타낼 수 있다.이 상태에서 주사위를 동쪽으로 2번 굴렸을 때를 생각해보자. 아래 그림과 같이 나타낼 수 있다. 초기 단계에서 동쪽으로 굴리면 [뒷면, 앞면]을 제외한 나머지 면들이 변화하는 것을 볼 수 있다. 하지만 변화할 때 위에서 보는 것처럼 규칙성을 가지고 변화한다.1) 바닥면은 왼쪽면으로2) 왼쪽면은 윗면으로3) 오른쪽면은 바닥면으로4) 윗면은 오른쪽면으로바뀌는 것을 볼 수 있다. 이 규칙성은 주사위를 동쪽으로 굴렸을 경우에만 해당하는 것이기 때문에 서쪽, 남쪽, 북쪽도 마찬가지로규칙성을 찾아 문제를 풀면 된다. 12345678..
[백준 14500번 테트로미노 URL] 이 문제는 단순히 DFS 탐색으로 풀 수 있습니다.하지만, 아래 그림에 빨간 동그라미로 표시된 모양의 테트로미노는 DFS로 탐색할 수 없기 때문에 "ㅗ" 모양은따로 처리해야합니다. [코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106import java.io.BufferedReader;import java.io.IOException;impo..
[백준 16234번 인구 이동 URL] 우선 문제에서는 조건에 의해 모든 국경선을 연 후에, 그 다음 인구이동을 시작하라고 나와있지만 딱히 순서는상관이없다. 1) 어느 한 나라와 연합이 될 수 있는 모든 나라를 찾는다.2) 연합이 될 수 있는 나라들을 모두 찾았으면 인구이동을 시작한다.3) 인구이동이 끝났으면 다시 1)번을 수행한다. 즉, 다음과 같은 나라들이 있다면 (L=20, R=50)인구가 50인 나라부터 탐색을 시작해서 연합될 수 있는 나라들을 찾는다. 어느 한 나라로부터(인구 50인 나라) 연합할 수 있는 모든 나라들을 찾았으면 인구이동을 시작한다.여기서 하나의 연합으로 묶여진 나라들은 방문 여부를 나타내는 2차원 배열에 표시를 해 둔다.아래와 같이 인구이동이 끝나면, 다시 방문하지 않은 나라부..
[백준 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..
- Total
- Today
- Yesterday
- 알고스팟
- 영역 구하기
- 최소힙
- 정렬
- 큐
- 자바
- BFS
- 백준
- 연산자 끼워넣기
- SWEA
- 나무 재테크
- DFS
- 힙
- 트리
- 삼성
- 탐색
- 중간값
- 최대힙
- 우선순위 큐
- 브루트포스
- 구현
- 시뮬레이션
- 힙정렬
- 배열
- 탈주범 검거
- 리스트
- 알고리즘
- 14888
- 구슬 탈출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 |