Study/BOJ 37

[BOJ] 1655. 가운데를 말해요

www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제: 백준이가 외치는 수들의 가운데 수를 매번 구하라. 문제 이해하기!! 우선순위 큐를 이용한 가운데 수 구하기 문제입니다. 최대 우선순위 큐와 최소 우선순위 큐를 동시에 이용해서 경계 값을 찾아내면 됩니다. 그래서 푼 방법은 1. T == 1인상황과 2 이상인 상황을 분리시킵니다. 2. 2인 상황에서 최소힙이 (지금까지 부른 수들의 갯수 // 2)보다 작으면 최대힙의 팝한 숫자나 현재 숫자를..

Study/BOJ 2021.11.02

[BOJ] 2096. 내려가기

www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 문제: 주어진 배열에서 인접한 부분으로 위에서 부터 내려가며 숫자를 더할 때, 최소 값과 최대 값을 구하여라 문제 이해하기!! DP문제로, 앞에서 더한 인접한 부분 것들에 최대 값과 최소 값을 구해서 더해가며 밑으로 내려가면 되는 문제입니다. 하지만 이 문제만 나온다면 골드문제가 아니라 실버 1~2 정도 문제겠죠? 이 문제는 DP로 푸는 방법만 구하는게 아니라 실제로 사용되는 메모리의 양도 중요했던 문제입니다. 이 문제를 풀..

Study/BOJ 2021.07.29

[BOJ] 11404. 플로이드

www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제: 모든 도시에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하라. 문제 이해하기!! 모든 도시로 가는 최소 비용을 구하면 되는 문제입니다. 한 루트의 최소비용을 구할 때는 다익스트라를 쓰지만, 모든 곳의 최소비용을 구할 때는 플로이드 와샬을 쓰면 됩니다. 다만 주의할 점은 정점의 갯수 ** 3 이므로 정점의 갯수가 작을 때 쓸 수 있습니다. 그래서 푼 방법은 1. 처음 받는 루트와 비용을 최소..

Study/BOJ 2021.07.18

[BOJ] 1967. 트리의 지름

www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 문제: 주어진 트리에서 트리의 지름을 구하여라 문제 이해하기!! 해당 문제는 1167번 문제와 같은 문제입니다.문제의 설명과 풀이 방법은 이전 글을 참고하시거나 해당 링크를 따라가시면 됩니다!링크: https://txegg.tistory.com/166 [BOJ] 1167. 트리의 지름 www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저..

Study/BOJ 2021.07.18

[BOJ] 1167. 트리의 지름

www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 문제: 주어진 트리에서 트리의 지름을 구하여라 문제 이해하기!! 트리의 지름이란 원본 문제를 보면 설명이 나와있는데요, 임의의 정점에서 임의의 정점까지의 거리가 최대인 것을 뜻합니다. 그럼 어떻게 구해야할까요? 정점의 갯수는 10만으로 플로이드-와샬 알고리즘은 못 씁니다. 그럼 다익스트라를 써도 될까요? 으음.. DP로 저장한다고 하더라도 여러 정점을 살펴봐야하기에 힘들죠. 좀 더 기본적인 방향..

Study/BOJ 2021.07.18

[BOJ] 7662. 이중 우선순위 큐

www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 문제: 최댓값과 최솟값을 뺄 수 있는 이중 우선 순위 큐를 만들어라 문제 이해하기!! 이중 우선 순위 큐면 사실 deque을 이용해서 뒤에서 빼고 앞에서 빼면 되지만, 이 문제에서는 insert까지 생각해야 합니다. 그러므로 새로운 방식으로 짜야하는데요, 그 방법은 최소, 최대 힙 두개를 사용한 방법입니다. 제가 푼 방식을 설명하자면, 1. 최소 최대 힙을 이용하여 각 Insert마다 숫자를 받고, 해당 숫..

Study/BOJ 2021.07.07

[BOJ] 2667. 단지번호붙이기

www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 문제: 집들이 연결되어 있는 단지를 파악하고 총 단지의 수와 각 단지의 집이 몇개인지 파악하라. 문제 이해하기!! 해당 문제는 딱 명확한 완전탐색이었습니다. BFS, DFS든 상관은 없구요, visit 배열로 방문체크만 해준다면 바로 풀리는 문제입니다. 제가 푼 방식을 설명하자면, 1. 입력받은 배열을 for문으로 돌려, 아직 방문하지 않은 곳이고 집이 있는 곳이라면 DFS를 수행합니다. 2. DFS구현: DFS..

Study/BOJ 2021.07.04

[BOJ] 9019. DSLR

www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 문제: DSLR이라는 4가지 명령어로 주어진 숫자를 목표값으로 최소한의 명령을 통해 바꾸어라. 문제 이해하기!! 아, 이 문제 너무 깐깐한 문제였습니다. 문제에 테스트케이스의 수가 나와있지 않고 시간제한이 6초라니.... 일단 알아본봐로는 테케 수가 최대 1만개라고 합니다! 참고^^ 이 문제를 풀려면 BFS 방법을 써야하는데요, 일단 4가지 명령어는 쉽게 구현됩니다. 하지만 여기서 DFS를 써버리면..

Study/BOJ 2021.07.01

[BOJ] 10026. 적록색약

www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제: 적록색약이 아닌 사람이 봤을 때의 구역의 개수와 적록색약인 사람이 봤을 때의 구역의 수를 공백으로 구분해 출력하라. 문제 이해하기!! 구역을 나누는 것을 구해야 되는 문제입니다. 문제에서 나오는 적록색약은 미끼로 그냥 두 번 "R"을 "G"로 바꾸어 한 번 더 구하면 되는 문제였습니다. 그렇다면 어떻게 구역을 나눌까요. 저는 DFS로 완전탐색을 실시하였습니다. 해당 구역들을 찾기 위해서는 각 구역..

Study/BOJ 2021.06.24

[BOJ] 16928. 뱀과 사다리 게임

www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 문제: 뱀과 사다리 게임에서 주사위를 최소로 굴려 1부터 100까지 가장 빠르게 도착할 수 있게 하라. 문제 이해하기!! 뱀과 사다리 게임은 예전에 많이 해봤던 추억의 놀이죠. 그래서 문제를 쉽게 이해할 수 있었던 것 같습니다. 1부터 100까지이므로 모든 경우의 수를 다 확인하면 됩니다 ㅎㅎ (완전탐색!!) 다만, 주의할 점은 뱀으로 이동하면 100번까지 더 빨라..

Study/BOJ 2021.06.23
반응형