BOJ 21

[BOJ] 1389. 케빈 베이컨의 6단계 법칙

www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 문제: 케빈 베이컨의 수가 최소인 사람의 번호를 출력하라. 문제 이해하기!! 케빈 베이컨이라하면 그래프의 한 노드에서 다른 노드로 최소 몇번을 걸쳐야 거기로 갈 수 있는지를 구하면 되는 문제입니다. 즉, BFS를 쓰면 되는 문제라고 볼 수 있습니다. ※ 다만, DFS를 쓰면 틀리니 주의하세요! DFS를 쓰면 틀리는 이유는 깊이와 너비 우선 방식의 노드 접근법을 생..

Study/BOJ 2021.06.23

[BOJ] 13418. 학교 탐방하기

www.acmicpc.net/problem/13418 13418번: 학교 탐방하기 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 건물의 개수 N(1≤N≤1,000)과 도로의 개수 M(1≤M≤n*(n-1)/2) 이 주어진다. 입력의 두 번째 줄 www.acmicpc.net 문제: 피로도가 최악인 경로와 최적인 경로의 피로도 차이를 구하라. 문제 이해하기!! 학교의 입구부터 학교 건물을 모두 소개해주는 문제입니다. 모든 경로를 탐방해야하므로 최소 스패닝 트리 문제라고 할 수 있습니다. 그러므로 이제 제일 잘 알려진 프림 알고리즘과 크루스칼 알고리즘 중 하나를 선택하여 풀면됩니다. 음... 혹시나 둘 다 모르는 분은 다익스트라가 익숙하시면 프림으로 하시고..

Study/BOJ 2021.06.21

[BOJ] 9251, 15482. LCS, 한글 LCS

www.acmicpc.net/problem/15482 15482번: 한글 LCS 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 최대 1000글자이고, 유니코드 U+AC00(가)부터 U+D7A3(힣)까지로만 이루어져 있으며, UTF-8로 인코딩 되어 있다. www.acmicpc.net www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 문제: 문자열 2개에서 최장 공통 부분 수열을 찾아라. 문제 이해하기!! LC..

Study/BOJ 2021.04.25

[BOJ] 20040. 사이클 게임

www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 문제: 사이클이 생긴다면 그 즉시, 해당 번호를 출력하라. 문제 이해하기!! 처음에는 이게 무슨 문젠가 싶었어요. 일단 그래프 문젠데... 연결해서 사이클이면 어떻게 해야하지 라고 생각했었는데 아니;; 그래프 문젠줄알고 들어가서 풀었는데 분리집합이더라구요. 들어오는 것들 union으로 싹 다 넣어서 부분 집합을 통일시키면 되는데, 들어오기 전에 둘의 부모가 같아서 이미 해당 부분집합에 들어가 있는 두 숫자..

Study/BOJ 2021.04.18

[BOJ] 1219. 오민식의 고민

www.acmicpc.net/problem/1219 1219번: 오민식의 고민 첫째 줄에 도착 도시에 도착할 때, 가지고 있는 돈의 액수의 최댓값을 출력한다. 만약 오민식이 도착 도시에 도착하는 것이 불가능할 때는 "gg"를 출력한다. 그리고, 오민식이 도착 도시에 도착 www.acmicpc.net 문제: 민식이가 S 도시부터 E 도시까지 가서 벌 수 있는 돈의 최댓값을 구하여라. 민식이의 고민보다 더 고통스러운 고민이었던 것 같습니다..ㅠ 문제를 풀면서 16~17퍼에서 자꾸 WA가 떠서 정말 힘들었던 문제에요. 최종적으로 찾아낸 반례는 4 0 3 4 0 1 0 0 3 5 1 2 0 2 1 0 0 5 5 10 답: 5 입니다. 타임머신이나 웜홀에서 썻던 코드를 들고와서 재사용했던게 문제가 되네요. 밑을 ..

Study/BOJ 2020.11.08

[BOJ] 1113. 수영장 만들기 반례 / 테스트 케이스

백준 문제 주소: www.acmicpc.net/problem/1113 1113번: 수영장 만들기 지민이는 수영장을 만들려고 한다. 수영장을 만들 곳의 크기는 N*M이고, 각 칸은 직육면체이다. 따라서, 각 칸의 직육면체의 높이가 쓰여 있는 다음과 같은 땅을 생각할 수 있다. 16661 61116 16661 이 www.acmicpc.net 테스트 케이스 / 반례 48 40 1666116661166611666116661166611666116661 6111661116611166111661116611166111661116 1666116661166611666116661166611666116661 1666116661166611666116661166611666116661 6111661116611166111661116..

Study/BOJ 2020.10.19

[BOJ] 16236. 아기상어

백준 문제 주소: www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가�� www.acmicpc.net 문제가 귀여워서 시작했습니다. ㅎㅎ 푼 방법은!!! 아기상어의 위치는 움직이므로 처음 시작점을 9 -> 0으로 만듭니다. BFS를 이용하여 가장 가까우면서 먹을 수 있는 물고기를 찾아 잡아먹고! visited 배열을 만들어 자기 자신이 갔던 곳을 체크하면 됩니다. 한 번 잡아 먹을 때마다 계속 visited 초기화와 지난 시간을 체크하고, BFS 큐를 초기화하여 잡아 먹은 지점에서 ..

Study/BOJ 2020.10.07

[BOJ] 2064. IP 주소

백준 문제 주소 : www.acmicpc.net/problem/2064 2064번: IP 주소 네트워크에 연결되어 있는 컴퓨터들은 각각 하나의 IP 주소를 갖게 된다. 그리고 이러한 IP 주소를 갖는 컴퓨터들이 여러 개 모여서 하나의 IP 네트워크를 구성하게 된다. IP 네트워크는 ‘네트워� www.acmicpc.net 비트마스크로 풀려다가 포기하고 문자열로 푼 다음, 다시 비트마스크로 풀은 문제입니다... 돌돌 비트마스크 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 오늘 올릴 코드는 2개입니다! 문자열 코드와 비트마스크 코드!! ** 푼 방법 1. 일단 네트워크 마스크를 구한다. 2. 아무 IP에 네트워크 마스크를 &연산하면 네트워크 주소가 나온다. 끝. 하기엔 뭔가 아쉬우니까? 네트워크 마스크는 XOR연산과 NOT연산..

Study/BOJ 2020.09.17

[BOJ] 2206. 벽 부수고 이동하기

백준 문제 주소 : www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net DFS, BFS의 머나먼 조상님 미로 문제에 조건 한 가지를 추가한 문제였습니다. 미로에서 단 한번!!! 벽을 부술 수 있다는 건데요. 하 ㅠㅠ 너무 힘들었어요 보이나요 제 노력... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 처음은 그냥 itertools 라이브러리의 combinations을 사용해서 1이 하나씩 사라진 모든 2차원 배열을 만들었습니다. 바로 메모리초과~~^^ 그래..

Study/BOJ 2020.09.16
반응형