[백준] 10026번 - 적록색약 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/10026 문제 설명적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다.크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 아래와 같은 경우를 보자.RRRBBGGBBBBBBRRBBRRRRRRRR 적록색약이 아닌 사람이 봤을 때 구역의 수는 총 4  (빨강 2, 파랑 1, 초록 1)적록색약인 사람이 봤을 때 구역의 수는 3 (빨강-초록 2, 파랑 1)  풀이 방법이 문제는 DFS(깊이 우선 탐색)로 해결할 수 있다.  1.  DFS 탐색 기본 구조:현재 위치에서 상하좌우로 이동하며 연결된 칸을 탐색한다.이미 방문한 칸이..
[백준] 1940번 - 주몽 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1940 문제 설명각각의 재료는 고유한 번호를 가진다.두 개의 재료로 하나의 갑옷을 (두 재료의 합이 고유번호 m) 만드는데 몇 개나 만들 수 있는지 구한다.풀이 방법재료가 15000개가 있으므로 모든 조합을 확인할 경우 매우 오래걸린다.15000C2 =  약 1억 1000으로 매우 비효율적이다.정렬이 필요하지 않고 검색을 빠르게 하는 게 최우선 이므로 자료구조 hashmap을 사용한다.이경우 find에서 O(1)이 시간이 걸리므로 시간복잡도를 O(n)으로 줄일 수 있다.풀이 코드#include #include using namespace std;int n,k,num,answer;int main() { unordered_map weapon; ..
[백준] 16928번 - 뱀과 사다리게임 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/16928 문제 설명뱀과 사다리 게임을 들어본 사람들이 있을 거다. 1부터 시작하여 100번 위치까지 도착하면 되는데 주사위를 굴렸을 때 도착한 위치에 사다리가 있다면 위로,도착한 위치에 뱀이 있다면 아래로 내려가면 된다.내가 주사위 수를 조작할 수 있다면 어떻게 최단 횟수로 100의 위치에 도착할 수 있을 것인가?풀이 방법BFS(너비우선탐색)으로 풀면 된다.1번 칸부터 시작하여 주사위를 굴렸을 경우 1~6까지 전부 탐색해서 최솟값을 찾는다.100번째 칸에 먼저 도착한 값이 최소경우가 된다. 예를 들어, 주어진 사다리와 뱀이 다음과 같다고 가정한다. • 사다리:  2번 → 38번, 7번 → 14번, 8번 → 31번 • 뱀: 16번 → 6번, 49번..