본문 바로가기

C++ 코딩 문제 풀이/백준113

[Baekjoon] 25192번: 인사성 밝은 곰곰이 https://www.acmicpc.net/problem/25192 25192번: 인사성 밝은 곰곰이 첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다. www.acmicpc.net 문제 해결 과정 착안 동일한 값을 가지는 요소를 중복하여 저장하지 않고 한 번만 저장하는 STL의 컨테이너를 사용하여 닉네임 문자열을 저장한 다음, ENTER 문자열이 입력되기 직전 또는 프로그램 종료 직전까지 컨테이너에 들어온 요소 수를 출력하고자 했다. ENTER 문자열이 입력된 뒤에는 컨테이너를 초기화하여 처음부터 다시 요소 수를 계산하고자 하였다. 구현 처음엔 별 생각.. 2023. 6. 4.
[Baekjoon] 1149번: RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 해결 과정 착안 $N$ 번째 단계에서 $N$ 번째 집을 색칠할 때, 빨강, 초록, 파랑 중 $i$ 번째 색깔로 칠하려면 $(N-1)$ 번째 집이 $i$ 번째 색깔이 아니어야 한다. 한편 $N$ 번째 집을 색칠하는 비용이 최소가 되기 위해서는 $(N-1)$ 번째 단계의 집까지도 역시 최소 비용으로 색칠을 해야한다. 즉, $N$ 번째 집을 $i$ 번째 색깔로 칠하는 비용을 .. 2023. 6. 2.
[Baekjoon] 1197번: 최소 스패닝 트리 https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 문제 해결 과정 착안 최소 (비용) 신장 트리(minimum spanning tree, MST)를 구하는 문제이므로, 이를 구하는 대표적인 알고리즘을 이용하여 문제를 해결하고자 하였다. 문제에서 한 줄씩 간선 데이터를 입력으로 제공하기 때문에, 간선 데이터를 하나씩 저장하면서 정렬하는 것이 문제 해결에 편리할 것 같아서 크루스칼 알고리즘(Kruskal.. 2023. 5. 31.
[Baekjoon] 11659번: 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 해결 과정 착안 문제를 해결하기 위한 착안 과정에 실수가 많아서 이상한 생각의 흐름을 거쳐 답에 도달했는데 결국에는 올바른 방향으로 문제를 해결했지만 나중에 같은 실수를 반복하지 않기 위해 실수 과정을 기록해두려고 한다. 이상한 방법으로 문제를 풀기 전, 우선 문제를 해결하기 위해 올바르게 생각했던 부분은 크기 $N$의 배열에 각 인덱스 $i$마다 $1$부터 $i$번째.. 2023. 5. 30.
[Baekjoon] 16236번: 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 해결 과정 착안 문제에서 아기 상어가 물고기를 먹기 위해 이동하는 최소 경로가 크기에 따라 달라지는 상황에서, 아기 상어가 먹이를 찾아 탐색하는 과정을 구현하는 문제이다. 문제를 처음 접했을 때, 아기 상어의 1 초당 이동 반경을 중심으로 전방향으로 탐색을 하는 방법을 생각해보았다. 즉, 너비 우선 탐색(breadth-first search, BFS)의 원리에 기반하여 주어진 공간 내.. 2023. 5. 30.
[Baekjoon] 2908번: 상수 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제 해결 과정 착안 숫자를 뒤집어 읽었을 때의 대소 비교는 주어진 숫자들을 일의 자리의 수부터 차례로 십의 자리 수, 백의 자리 수를 비교하는 과정을 통해 빠르게 확인할 수 있으므로 이를 활용하여 문제를 해결하고자 하였다. * 문제에서 주어지는 숫자가 반드시 세 자리 숫자이며, 서로 다른 숫자라는 조건이 있기 때문. 구현 [스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~ 더보기 #includ.. 2023. 5. 29.