본문 바로가기
반응형

BOJ21

BOJ 1697 - 숨바꼭질 / C++ 문제 링크 : https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 풀이 요약하면, 현재 위치 n에서 k까지 갈 때 x+1, x-1, 2*x 중 한 가지 과정을 거쳐서 갈 수 있으며 최소 시간(카운트)을 구하면 되는 문제이다. 잠시 DFS와 BFS의 개념을 살펴보면 DFS는 아래의 그림처럼 현재 branch를 최대한 깊이 탐색한 후 다음 branch를 탐색하는 방식이며 BFS는 아래의 그림처럼 인접 노드를 모두 탐색한.. 2022. 2. 12.
BOJ 1260 - DFS와 BFS / C++ 문제 링크 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 설명 주석으로 대체 소스 코드 #include #include #include using namespace std; const int MAX = 1001; int N, M, V; //정점, 간선, 탐색 시작 번호 int adjacent[MAX][MAX]; bool visited[MAX]; queue q; void DFS(int idx) {/.. 2022. 2. 10.
C++ - 소수 판별 / 단순 브루트포스, 에라토스테네스의 체 문제 1 : https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 해당 문제는 범위가 10,000 이하의 자연수이며 시작값과 끝값 중에 존재하는 소수를 모두 더한 값과 최솟값을 출력하면 된다. 따라서 단순 브루트포스로 isPrime 함수를 구현한다. 1과 n이 아닌 다른 값으로 나누어 떨어지면 false를 반환, 그렇지 않다면 소수이므로 true를 반환한다. 이렇게 소수를 판별할 수 있고, 소수로 판별된 값은 total에 모두 더하며 최솟값을 계속 갱신해준다... 2021. 10. 12.
BOJ 1436 영화감독 숌 / C++ 문제 링크 : https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 풀이 문제 설명이 잘 이해가 되지 않아 다른 블로그를 통해 이해했다. 일단 종말의 숫자란 6이 최소 3개 이상 들어간 숫자이고 N 번째 영화의 제목은 종말의 숫자이면서 N번째로 작은 숫자이다. 예를 들면 666, 1666, 2666, 3666, 4666, 5666, 6660, 6661, 6662 이런식으로 진행되는데 5666 다음에 6666 이 되지 않는 이유는 6660 이 .. 2021. 8. 27.
반응형