https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 해설 : 영화감독 숌은 종말의 숫자 666을 영화 시리즈의 번호에 붙이려고 한다 예를 들어, 첫 번째 영화 : 종말 666 두 번째 영화 : 종말 1666 ( 666이 들어간 두 번째로 작은 수) · · · N이 주어졌을 때 N번째 영화의 시리즈 제목을 출력하는 문제이다. 풀이 : 666부터 1씩 증가시키며 666이 들어가는 N번째 작은 숫자를 찾는 브루트포스 문제이다. 소스코드 : 1 2 3 ..
https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 해설 : 숫자가 주어졌을 때 각 자릿수를 내림차순으로 정렬한 결과를 출력하는 문제이다. 풀이 : 주어진 숫자를 문자열로 치환하여 정렬하면 내림차순으로 정렬이 가능하다. 소스코드 : 1 2 3 4 5 6 7 8 9 #include #include using namespace std; int main(void) { string str; cin >> str; sort(str.begin(), str.end(), greater()); cout
https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 해설 : 케빈 베이컨의 6단계 법칙에 의하면 전 세계의 모든 사람은 지인을 6번만 거치면 모두 아는 사람이라고 한다. N명의 사람과, 연결관계가 주어질 때 각 사람들이 나머지 사람들에 총 몇 단계를 거쳐야 아는 사이가 되는지 구하고 거쳐야하는 단계들의 합 중에 최솟값을 가진 사람을 찾는 문제이다. 풀이 : 사람들간의 연결관계가 주어졌으므로 모든 사람..
https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 해설 : X와 "." 으로 이루어진 문자열을 'AAAA'와 'BB'로 치환할 수 있는지 찾는 문제이다. 치환할 수 있다면 사전순으로 가장 앞서는 치환값을 출력하면 된다. 풀이 : 주어진 문자열을 탐색하며 X를 만났을 때 연속되는 X의 개수를 센다. X의 개수가 홀수개라면 -1을 리턴하고 아니라면 AAAA 또는 BB로 치환한다. AAAA가 들어갈 수 있을 때 우선적으로 넣어줘야 사전순으로 앞서는 답을 도출할 수 있다. 소스코드 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1..
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 해설 : 알파벳 대문자들로만 이루어진 문자열 N개가 주어진다. 각 알파벳 대문자를 0~9의 숫자로 치환하여 더하였을 때 그 결괏값이 최대가 되는 경우를 구하는 문제이다. 풀이 : 문자열에 존재하는 알파벳별 가중치를 계산하기 위한 배열을 만들고, 이 배열에 문자열에 있는 문자들마다의 가중치를 더해준다 예를 들어 , ABC라는 문자열이 있다면 배열[A]의 가중치는 100이고 배열[B]는 10 배..
https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 해설 : 파란 옷을 입은 병사들과 하얀 옷을 입은 병사들이 뒤엉켜 싸우고 있다. N명의 병사들이 뭉쳐있을 경우 N^2의 힘을 낼 수 있다고 한다. 대각선에 있는 경우는 인접하지 않아 뭉쳐있다고 할 수 없다고 할 때, 파란 병사들와 하얀 병사들의 전투력 총합을 계산하는 문제이다. 풀이 : BFS로 W 또는 B의 병사들을 만났을 때 탐색하고 인접한 병사들의 수를 리턴하여 이 ..
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 해설 : 그래프의 노드와 간선정보가 주어질 때, 1번 정점부터 BFS와 DFS로 탐색한 결과를 출력하는 문제이다. 풀이 : 양방향 그래프이므로 0번 노드부터 N-1번 노드까지 연결 관계를 재설정해준 후 이를 BFS와 DFS로 각각 탐색하며 현재 탐색중인 노드를 출력하도록 구현하였다. 소스코드 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ..
https://www.acmicpc.net/problem/1242 1242번: 소풍 동호와 동호네 반 친구들은 산정호수로 소풍을 갔다. 총 N명이 소풍에 참가했고, KIN 게임을 하려고 한다. 이 게임은 다음과 같이 진행된다. 무대에 올라간 N명은 1번부터 N번까지 시계방향으로 원 www.acmicpc.net 해설 : 요세푸스 순열(https://recordofwonseok.tistory.com/96)과 똑같은 문제인데 내가 몇 번째로 탈락하는지만 추가적으로 찾으면 되는 문제이다. 풀이 : 옛날에 풀었던 문제라 기억이 잘 안난다. 소스를 참고로 해석해보자면 n은 퇴장당한 사람의 수이다. 매 퇴장당하는 경우마다 mod값을 이용하여 다음 퇴장당할 사람을 계산하는 방식인 것 같다. 소스코드 : 1 2 3 4 ..
https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라. www.acmicpc.net 해설 : N개의 노드로 이루어진 트리가 주어지고, 노드 사이의 거리 M개가 주어질 때, testCase에 대해 노드 사이의 거리를 출력하는 문제이다. 풀이 : 양방향 연결이므로 노드 사이의 거리와 연결 정보를 0번노드부터 N-1번 노드까지 가공한 후 이를 BFS로 탐색하며 원하는 노드가 나왔을 때 거리를 출력한다. 소스코드 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25..