
https://www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 난이도 : 골드 3 태그 : 구현, 그래프 이론, 그래프 탐색, 너비우선탐색, 시뮬레이션, 깊이우선탐색 설명 삼성 기출 문제로 유명한 마법사 상어 시리즈 중 '마법사 상어와 파이어스톰' 문제입니다. 시뮬레이션 문제로써, 1. 파이어스톰을 n번 시전 2. 모든 파이어스톰 시전 후 가장 큰 덩어리 찾기 크게 두 파트로 나눌 수 있습니다. 파이어스톰 시전 과정은 단순 구현이지만 모든..

https://www.acmicpc.net/problem/2355 2355번: 시그마 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) www.acmicpc.net 난이도 : 브론즈 2 태그 : 수학, 사칙연산 설명 A 부터 B 까지의 합을 구하는 문제이지만, 단순히 for문을 사용해 구할 경우 시간초과가 납니다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) A, B의 범위가 매우 크기 때문이죠. for문을 사용해 구하게 될 경우 매우 많은 연산을 수행하게 될 수 있습니다. 그렇다면 어떻게 해야 할까요? 힌트는 문제 제목에 있습니다. 1부터 n까지의 합을 구하는 유명한 공식이 하나 있습니다. 위 공식을 사용한다면 적..

https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 난이도 : 골드 3 태그 : 자료 구조, 그리디 알고리즘, 정렬, 우선순위 큐 설명 과제는 마감일이 있고, 과제 하나를 끝내는 데에는 하루가 걸립니다. 과제를 풀 때마다 각기 다른 점수를 얻을 수 있을 때, 점수의 최댓값을 구하는 문제입니다. 어려운 것 같지만 천천히 접근해봅시다. 최댓값을 구하려면, 어떤 숙제를 해야 할까요? 바로 점수가 높은 숙제부터 하는 것입니다. 그럼 숙제를 언제 해야 할까요? 각 숙제는 마감일 안에 언제든지 하면 됩..

https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 정렬, 깊이 우선 탐색 설명 이름 처럼 깊이 우선 탐색 (DFS, Depth First Search)의 연습문제 입니다. 그래프를 탐색하는데는 여러 방법이 있습니다. 그 중 꽤 유명한 탐색방법인 DFS를 연습해봅시다. DFS는 트리 or 그래프에서 최대한 깊이 탐색한 ..

https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 난이도 : 골드 2 태그 : 그래프 이론, 그리디 알고리즘, 그래프 탐색, 깊이 우선 탐색 설명 첫째 열에서 시작해 서로 교차하거나 중첩되지 않으면서 마지막 열로 가는 경로를 찾는 문제입니다. 1번 예제 같은 경우는 최대 두 가지 경로를 그릴 수 있습니다. 2번 예제 같은 경우는 아래와 같이 최대 5개의 경로(파이프 라인)이 있습니다. 파이프라인은 왼쪽에서 오른쪽 방향으로 놓을 수 있으며, 오른쪽 대각선 위, 오..

https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 난이도 : 실버 2 태그 : 이분 탐색, 매개 변수 탐색 설명 절단기를 H 높이로 했을 때, 그 위의 나무는 모두 잘립니다. 꼭 필요한 만큼의 나무만 가져가되, 적어도 M미터의 나무를 집에 가져가고 싶을 때, 절단기의 높이의 최댓값을 구하는 문제입니다. 이진 탐색(이분 탐색)을 응용할 수 있겠는데, 이진 탐색에 기반한 매개 변수 탐색(Parametric Se..

https://www.acmicpc.net/problem/6749 6749번: Next in line You know a family with three children. Their ages form an arithmetic sequence: the difference in ages between the middle child and youngest child is the same as the difference in ages between the oldest child and the middle child. For example, their ages c www.acmicpc.net 난이도 : 브론즈 4 태그 : 구현, 수학 설명 아이가 셋 있는 가족이 있습니다. 둘째와 셋째의 나이차이가 첫째와 둘째의 ..

https://www.acmicpc.net/problem/7287 7287번: 등록 첫 줄에 자신이 맞은 문제의 수, 둘째 줄에 아이디를 출력한다. www.acmicpc.net 난이도 : 브론즈 5 태그 : 구현 설명 자신의 아이디와, 현재 맞은 문제 개수를 출력하는 문제로, 개인마다, 현재 맞춘 문제 수 마다 출력이 달라지는 특이한 문제입니다. 그냥 자신의 백준 정보로 들어가, 맞은 문제 개수를 복사한 뒤, 아이디와 함께 출력하면 됩니다. 소스코드 fun main() { println("655") println("yoon6763") } 자신의 현재 맞은 문제 개수, 자신의 아이디를 넣어야만 합니다. 후기 사람마다, 그리고 문제를 푸는 시점의 맞은 문제 개수마다 출력을 달리 해야 했던게 꽤 신기했던 문제..

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 난이도 : 골드 5 태그 : 구현, 시뮬레이션 설명 단순 구현 + 시뮬레이션 문제이기에, 저는 큐나 DFS 없이 단순 구현으로 풀었습니다. 문제의 지문을 읽고 그대로 구현하면 되는데, 주의할 점이 몇 가지 있습니다. 로봇은 청소되지 않은 빈 칸이 있을 경우, 일단 반시계 방향으로 회전합니다. 현재 바라보고 있는 방향부터 탐색(X) 일단 왼쪽으로 한..

https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 난이도 : 골드 3 태그 : 구현, 자료구조, 시뮬레이션 설명 1년에 봄, 여름, 가을, 겨울. 네 계절 이있습니다. 봄에는 나무가 양분을 빨아먹고, 나이가 증가하며, 양분이 없는 나무는 죽습니다. 여름에는 죽은 나무가 양분으로 변합니다. 가을에는 나무가 번식합니다. 8방향에 나이가 1인 나무가 생겨나죠. 겨울에는 토양에 새 양분을 추가합니다. 딱히 별도의 알고리즘이나 테크닉 없이..