백준 10026번 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 알고리즘분류 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 2차원 배열 델타 사용 2차원 배열을 델타를 이용하여 풀었다. 한 지점을 8방향으로 탐색할 때 좌표값의 계산은 위 사진과 같다. y값이 증가할 수록 아래로 이동한다. 적록색약 문제는 4방향 탐색이기 때문에 x, y = {-1, 0}, {1, 0}, {0, -1}, {0, 1} 상하좌우 좌표값만을..
백준 1260번 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS(깊이 우선 탐색)란? DFS(깊이 우선 탐색, Depth-First Search)란 그래프의 가장 깊은 곳부터 탐색하는 것으로 자기 자신을 호출하는 순환 알고리즘에 형태를 가지고 있다. 주로 스택(Stack)으로 구현되며, 아래코드도 스택을 이용하여 구현되었다. BFS(너비 우선 탐색)란? BFS(너비우선 탐색, Brea..
그리디 알고리즘이란? greedy: 1. 탐욕스러운 2. 욕심많은 사전 상의 의미와 같이 탐욕 알고리즘이라고도 부른다. 동적 프로그래밍 사용 시 지나치게 많은 일을 한다는 것에서 착안하여 고완된 알고리즘으로, 미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법임 동적 프로그래밍을 대체하는 것이 아닌, 같이 쓰이며 서로 보안하는 개념으로, 각 단계에서 최선의 선택을 한 것이 전체적으로도 최선이길 바라는 알고리즘 창의력(문제를 풀기 위한 최소한의 아이디어)를 요구하는 문제 유형 그리디 알고리즘을 사용하여 프림 알고리즘과 다익스트라 알고리즘 구현가능 다익스트라 알고리즘의 경우 그리디 알고리즘이지만 암기가 필요한 유형문제 출제 유형의 폭이 넓기 때문에 특이 케이스를 제외하고는 단수 암기를 통해 모든..
StringTokenizer란 ? 공백 및 지정한 구분자로 문자열을 분리 해주는 클래스를 말한다. 구분자로 문자열을 분리하면서 더 이상 나눌 수 없는 요소들을 Token이라고 한다. 010-1234-5678 여기에서 - 는 구분자를 의미하고, 010, 1234, 5678은 Token(토큰)을 의미한다. 생성자(Constructor) 생성자 설명 StringTokenizer(String str) 기본 delim인 공백문자로(\t, \n, \r, \f) 분리한다. StringTokenizer(String str, String delim) 지정해준 delim으로 문자열을 분리한다. StringTokenizer(String str, String delim, boolean returnDelims) 지정해준 del..