[백준/C++] 2589번: 보물섬
문제&링크 https://www.acmicpc.net/problem/2589 풀이 가장 먼 두 점 사이의 거리를 구하는 문제임으로 시간 초과를 고려하여 BFS로 문제를 해결한다. 육지(“L”)로 이루어진 그래프가 여러 개 있을 수 있으므로, 모든 점을 기준으로 BFS를 구하고 거리의 최댓값을 구한다. -...
문제&링크 https://www.acmicpc.net/problem/2589 풀이 가장 먼 두 점 사이의 거리를 구하는 문제임으로 시간 초과를 고려하여 BFS로 문제를 해결한다. 육지(“L”)로 이루어진 그래프가 여러 개 있을 수 있으므로, 모든 점을 기준으로 BFS를 구하고 거리의 최댓값을 구한다. -...
문제&링크 https://www.acmicpc.net/problem/11279 풀이 우선순위 큐를 이용하여 최대 힙을 만든다. 0을 입력받은 순간 최대 힙이 비어있다면 0을 출력한다. 0을 입력받은 순간 최대 힙이 비어있지 않다면 제일 큰 값, 즉 우선 순위 큐의 top에 해당하는 값을...
문제 & 링크 https://www.acmicpc.net/problem/11660 풀이 테이블에 값을 입력 할 때 시작점인 (1, 1)부터 현재 위치인 (i, j)까지의 전체 누적합을 dp 테이블에 저장한다. 설명: 현재 위치까지의 누적합을 저장하기 위해서는 빨간 사각형(dp[i - 1][j])과 파란 사각형(dp[i][j...
문제 & 링크 https://www.acmicpc.net/problem/1644 풀이 에라토스테네스의 체를 이용하여 4,000,000까지의 모든 소수를 구해준다. (2부터 4,000,000까지 반복문을 이용하여 탐색한다. 탐색된 수 자기 자신을 제외한 모든 배수들을 bool 타입을 이용해서 체크한다.) 2. 반복문을 마친 후 ...
문제 & 링크 https://www.acmicpc.net/problem/9252 풀이 dp 테이블을 0으로 초기화한다. 두 문자열을 dp 테이블의 1부터 시작하도록 반복문을 설정한다. 각 문자열의 원소가 같을 경우 dp[i][j]라면 dp[i-1][j-1]에서 1을 더해서 저장한다. 대...
문제 & 링크 https://www.acmicpc.net/problem/1107 풀이 리모컨은 0 - 9까지 10개의 버튼을 가지고 있기에 길이가 10인 bool 자료형의 배열을 만들고, 입력받은 버튼을 true로 설정한다. 현재 채널이 100이기에 +, - 버튼만으로 원하는 채널에 도달할 때 누르는 횟...
문제 & 링크 https://www.acmicpc.net/problem/1002 풀이 x1, y1을 중심으로 하고 반지름이 r1인 원과 x2, y2를 중심으로 하고 반지름이 r2인 원의 접점을 구하는 문제이다. 두 원의 중심 좌표가 같을 경우 반지름의 길이가 같다면 접점은 무한대가 되고, 다르다면 접점은...
문제 & 링크 https://www.acmicpc.net/problem/17608 풀이 보는 방향, 즉 제일 오른쪽 막대기를 시작으로 잡는다. 오른쪽에서 왼쪽으로 막대기를 탐색하며 지금까지 탐색한 막대기 중 가장 큰 것과 비교한다. (max값 구하는 알고리즘과 유사) 더 큰 막대기가 있...
문제 & 링크 https://www.acmicpc.net/problem/11880 풀이 !! 범위를 고려하여 long long int 자료형을 사용하여야 함!! 1. 개미가 이동한 최단 거리는 (세로 + 높이)와 가로를 두 변으로 하는 빗변이기에 가로의 길이가 제일 길어야 한다. * 세로 or 높이가 가장 길 경우 개미가 이동한 ...
문제 & 링크 https://www.acmicpc.net/problem/8979 풀이 vector 자료구조를 사용하여 입력받을 각 나라별 금, 은, 동메달의 개수를 저장한다. 등수를 알고 싶은 국가와 국가 번호가 같을 때 해당 인덱스를 저장한다. for문을 이용하여 등수를 알고 싶은 국...