목록알고리즘/백준 (341)
어흥
문제 링크: https://www.acmicpc.net/problem/16434 16434번: 드래곤 앤 던전 첫 번째 줄에 방의 개수 N (1 ≤ N ≤ 123,456) 과 용사의 초기 공격력 HATK (1 ≤ HATK ≤ 1,000,000) 가 주어집니다. i+1번째 줄엔 i번째 방의 정보를 나타내는 세개의 정수 ti, ai, hi (ti ∈ {1, 2}, 1 � www.acmicpc.net 1. 주의할 점 - 이분탐색을 사용한다 - 몬스터와 싸울 경우, While문을 통해 모든 과정을 반복하지 않는다-> While문 사용하면 TLE 발생 2. 구현 - Left = 1, Right = LLONG_MAX로 설정하며 이분탐색을 시작한다 - Cal(Mid) 함수를 통해 Mid의 체력으로 용사가 공주를 구할..
문제 링크: https://www.acmicpc.net/problem/4650 4650번: Jungle Roads The input consists of one to 100 data sets, followed by a final line containing only 0. Each data set starts with a line containing only a number n, which is the number of villages, 1 < n < 27, and the villages are labeled with the first n letters of the a www.acmicpc.net 1. 주의할 점 - 매 TC마다 Par[] 배열 초기화 - MST 알고리즘에 대해 알고 있어야 한다 2. 구현..
문제 링크: https://www.acmicpc.net/problem/2406 2406번: 안정적인 네트워크 첫째 줄에 두 정수 n(1≤n≤1,000), m이 주어진다. n은 컴퓨터의 개수이며, m은 연결되어 있는 지사 컴퓨터들의 쌍의 개수이다. 다음 m개의 줄에는 두 정수 x, y가 주어진다. 이는 서로 다른 두 컴퓨터, www.acmicpc.net 1. 주의할 점 - 1번 Node를 제외하고 MST를 만든다 - 총 Node-2개의 간선이 만들어지면 된다(Cycle을 생성하는 간선은 개수에 포함 안함) 2. 구현 - 크루스칼 알고리즘을 통해 MST 문제를 해결한다 - 이미 연결된 지사의 컴퓨터 중, 같은 부모를 공유하고 있지 않다면 Make_union(a,b) 함수를 통해 같은 부모를 공유하도록 설정하..
문제 링크: https://www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5*5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작�� www.acmicpc.net 1. 주의할 점 - 전부 S를 입력했을 때, 3546이 나와야 한다 - 이다솜파인 학생이 4명 이상 있어야 한다 2. 구현 - DFS와 백트레킹을 통해 구현한다 - DFS(idx,lee,lim) 함수를 통해 각 학생들을 V 벡터에 저장하고, Lee>Lim인 경우에만 V 벡터에 저장된 학생들이 모두 붙어있는지 확인한다 - Check_near() 함수를 통해 각 벡터들이 서로 인접해 있는..
문제 링크: https://www.acmicpc.net/problem/16137 16137번: 견우와 직녀 첫째 줄에 지형의 행과 열의 크기를 나타내는 정수 N (2 ≤ N ≤ 10)과 새로 만들어지는 오작교의 주기를 의미하는 정수 M(2 ≤ M ≤ 20)이 주어진다. 다음 N개의 줄에는 줄마다 배열의 각 행을 나 www.acmicpc.net 1. 주의할 점 - 교차로인 경우 오작교를 짓지 못하도록 한다 - 연속으로 다리를 건널 수 없다 - 1칸씩 이동한다 2. 구현 - 맵을 입력 받은 후, 교차로의 경우 좌우/상하 를 확인하여 옆에 칸이 땅이 아닌 경우 +1씩 하여 둘다 1이상을 기록할 경우, 교차로라고 판단 -> Arr[][]의 값을 -1로 변경 - BFS를 통해 구현 - 이동하려는 칸이 땅인 경우,..
문제 링크: https://www.acmicpc.net/problem/3780 3780번: 네트워크 연결 문제 종빈이는 아주 큰 그룹의 총수다. 이 그룹은 1부터 N번까지의 번호로 구분할 수 있는 N개의 기업을 운영하고 있다. 현재 각 기업은 서로 독립적인 자체 컴퓨팅 및 통신센터를 가지고 있다. �� www.acmicpc.net 1. 주의할 점 - TLE가 안나도록 잘 짜야 한다 - 새로운 간선을 연결할때만 1000으로 나눈 나머지 거리로 입력한다 2. 구현 - Find_parent(x) 함수를 통해 X의 센터에서부터 X까지의 거리를 구하여 갱신한다. 기존에 1->2->4였고 4->6이 새로 추가 됐다고 가정한다. 그리고 E 1을 입력한 경우, Dist[1], Dist[2]가 새로 갱신된다. Dist[..
문제 링크: https://www.acmicpc.net/problem/1774 1774번: 우주신과의 교감 문제 황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 이러던 와중에 새로운 우� www.acmicpc.net 1. 주의할 점 - MST 알고리즘에 대해 알고 있어야 한다 - 이미 연결되어 있는 경우, 어떻게 처리할 것인지 고민한다 2. 구현 - 크루스칼 알고리즘을 통해 MST를 해결한다 - 모든 우주신들의 좌표를 X[], Y[] 배열에 저장한다 - 이미 연결된 통로의 정보를 입력받아 Make_union(a,b) 함수를 통해 A와 B의 부모를 일치시킨다 - 서로 다른 신과 그 사이의 거리를 Ca..
문제 링크: https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 � www.acmicpc.net 1. 주의할 점 - 높이를 1~100까지 모두 시험해보지 말고 가장 낮은 건물높이~가장 높은 건물 높이로 시험한다 2. 구현 - 가장 낮은 건물높이, 가장 높은 건물 높이를 구해서 For문을 반복한다 - 높이 설정을 다르게 할 때 마다 Check[][]배열을 초기화 해준다 - BFS를 통해 잠기는 높이보다 건물이 높으면 Queue에 넣는 방식으로 하며 Cnt를 Result와 비교하며 Re..