전체 글 204

BOJ 17834 - 사자와 토끼

문제 링크 : https://www.acmicpc.net/problem/17834 문제 풀이 문제를 보자마자 홀짝성을 생각할 수 있다. 다시 말하자면 주어진 그래프를 2가지 색으로 칠할수 있는지를 물어보는 문제이다. 만약 주어진 그래프를 2가지 색으로 칠할 수 있다면, 두 동물의 시작 색깔이 다르면 영원히 잡을 수 없게 되기 때문이다. 주어진 그래프를 두 가지 색으로 칠할 수 있는지를 확인해 보자. 이는 dfs 한 번으로 쉽게 확인할 수 있다. dfs를 기본적으로 돌면서 두 가지 색을 번갈아가면서 칠해준다. dfs를 돌 다 보면 이미 방문한 정점을 거를때가 있는데, 거르기 전에 현재 정점과 다른 색으로 칠해져 있는지를 확인해주면 된다. 만약 같은 색이라면 두 가지 색으로 칠할 수 없는 그래프이다. 하지만..

BOJ 2924 - 천재

문제 링크 : https://www.acmicpc.net/problem/2924 문제 풀이 주어진 수열의 i번째 값을 A[i]라고 하자. 우리는 $C\leq k\leq N-D$ 인 k들에 대해서 모든 A[A[A[A[A[...A[k].]]]]=k가 되는 최소 횟수를 찾아야 한다. 당연히 B번을 돌려보는 것은 문제를 해결할 수 있는 방법이 아니다. 최소 횟수를 m이라고 하면 답은 (B회까지 처음과 같은 형태의 개수 - A-1회 까지 처음과 같은 형태의 개수) 이기 때문에 (b+m-1)/m-(a+m-2)/m의 형태가 된다. 따라서 m을 구하기만 하면 된다. 각 k에 대해서 다시 k로 돌아오는데 까지 걸리는 횟수를 알게 되면 $C\leq k\leq N-D$ 인 k들에 대해서 그 횟수들을 모두 lcm 취해주면 모..

제 5회 국민대학교 알고리즘 대회 후기

2주 전에 예선을 치르고 난 뒤 오늘 국민대학교에 직접 가서 제5회 국민대학교 알고리즘 대회에 참가했다. 그냥 후기를 한 번 남겨보려고 한다. 예선 예선은 7월 31일 금요일 오후 2시에 치뤄졌다. 온라인 예선이었고, 방식이 굉장히 독특했다. 일단 그전에 사전점검을 통해서 4가지를 점검했다. 노트북 화면, 노트북 카메라, 핸드폰 카메라, 음성. 대회는 2시부터 시작하며, 1시간 동안 가만히 앉아서 대회를 치루는 과정에서 노트북 화면, 노트북 카메라, 핸드폰 카메라, 음성의 4가지를 계속 송출한다. 정말 머리가 좋은 방식이었다. 참가자 본인이 확실하게 다른 불법행위를 저지르지 않고 계속해서 대회에 참가를 하고 있는지를 거의 완벽하게 확인할 수 있는 세팅이었다. 이 방법을 생각해낸 대회 관계자 분들께 정말 ..

BOJ 1486 - 등산

문제 링크 : https://www.acmicpc.net/problem/1486 문제 태그 더보기 플로이드 와샬 문제 풀이 각 인접한 곳으로 가는데 일정 시간이 들게 된다. 또한 못 가는 경로도 있다. 이를 각 위치를 노드로 설정하고, 인접한 위치끼리 간선으로 이어져 있다고 생각하여 그래프로 변환을 할 수 있다. 그래프로 변환할 때에는 문제에서 제공해준 조건을 그대로 따라서 간선에 가중치를 매기면 된다. 이때 서로 갈 수 없는 칸 끼리는 간선의 가중치를 inf로 매겨주면 된다. 최종적으로 알고 싶은 것은 (1,1)->(a,b)->(1,1)의 경로의 최소 길이가 D이하인 (a,b)중에 가장 높은 것을 찾으면 된다. N이 굉장히 작기 때문에 모든 노드에 대해서 다 확인해 볼 수 있다. 따라서 구하고 싶은 값..

카테고리 없음 2020.08.13

교내 경시 대비 #2

교내 경시를 대비하여 가볍게 돈 셋을 정리하는 글이다. Blackking26과 함께 7월 15일 19시 부터 20시 40분까지 100분 간 진행했다. 지난번 문제는 너무 쉽기도 하고, 구현 연습이 절실했기 때문에 문제는 골드 하위 랜덤 5문제와 실버 상위 구현 태그가 달린 5문제를 넣어서 10문제로 설정했다. 결과는 10문제 중에 7문제를 풀었다. 비 구현 4문제와 구현 3문제이다. A. 주기문으로 바꾸기 주기로 인해서 같은 글자가 되어야 하는 애들끼리 묶어서 생각하자. 당연히 가장 많은 글자를 따라 가는 것이 이득이다. 따라서 주기의 같은 위치에 있는 글자끼리 묶어서 가장 많은 수의 글자가 아닌 글자가 몇 개인지 세기만 해서 더하면 끝이다. B. 파이프 옮기기 1 아무리 봐도 딱봐도 DP. 어떤 칸에 ..

Monotone Queue Technique

이 글에서는 Monotone Queue Technique(모노톤 큐 테크닉) 에 대해서 가볍게 다뤄보려고 한다. DP에서 사용하는 Monotone Queue Optimization에 대해서 알고 싶다면 이 글을 참고하자. What is Monotone Queue? Monotone Queue는 Monotone 과 Queue의 합성어이다. 즉 큐는 큐인데 단조로운 Queue라는 것이다. 즉, 어떠한 알고리즘을 토대로 큐를 단조롭게 관리하는 것이다. 당연히 큐를 단조롭게 관리함으로써 무엇인가를 얻을 수 있을 것이다. Problem 예시 문제로 BOJ 11003 최솟값 찾기를 가지고 왔다. 전체 n개의 숫자내에 속한 임의의 크기 k인 구간에 대해서 최솟값을 구하는 문제이다. Naive 하게 풀면 $O(NK)$,..

교내 경시 대비 #1

교내 경시를 대비하여 가볍게 돈 셋을 정리하는 글이다. Blackking26과 함께 7월 13일 19시 부터 20시 40분까지 100분 간 진행했다. 문제는 S5~G5 한글 디스크립션 랜덤문제 13문제를 뽑았다. 100분 동안 11문제를 풀었다. 실버라서 그런지 무난하게 빨리 풀렸다. 사실 좀 많이 쉬웠다. 앞으로는 난이도를 조금 올리는 게 좋을 것 같다. A. 삼삼한 수 어떤 수를 3진법으로 나타냈을 때 2가 있는지 확인하자. 예외 처리로 0을 신경써주어야 한다. 정말 간단하게 풀리는 문제 B. 텔레포트 어떤 두 도시를 가는 방법은 그냥 가거나, 출발지 -> 특별한 도시 -> 텔레포트 -> 목적지로 가는 두 가지 방법이 있다. 두번째 방법에서 텔레포트 비용은 항상 일정하기 때문에 모든 도시에 대해서 가..

내가 사용하는 STL (4) - 덱 (Deque)

이번에 소개할 STL은 Deque이다. Deque 덱 Deque. 간단히 줄여서 dq라고도 한다. 덱은 queue와 stack을 합쳐놓았다고 생각하면 된다. 정확히는 가능한 부분을 더했다고 생각해야 한다. 덱에서는 앞 또는 뒤로 넣고, 앞 또는 뒤로 뺄 수 있다. 즉, 출입의 경우의 수가 4가지가 된다는 것이다. 이는 아래의 그림과 같이 행동한다. 이와 같이 4가지 행동을 모두 할 수 있는 자료구조이다. 그러면 stack이나 queue를 쓸 바에 무조건 deque을 쓰면 되지 않냐고 생각할 수 있다. 사실 맞는 말이다. 하지만 stack이나 queue가 더 익숙하고, 코드가 더 짧기 때문에 (이 이유가 크다) stack이나 queue를 많이 사용을 한다. 위와 같이 생각을 했었으나 조사를 해보니 dequ..

시 - 크리스마스 선언문

크리스마스 선언문 올해도 어김없이 겨울이 다가오고 소복소복 눈이 쌓이고 캐럴송이 길거리에 울려 펴지면 올해도 선언합니다. 산타는 있노라고 그러면 올해도 어김없이 산타할아버지는 머릿속에 선물을 넣고 갑니다. 어린 시절의 행복, 어린 시절의 순진, 어린 시절의 추억들 내 선언문은 찢긴지 오래지만, 찢겨질 수 없었던 글귀들만큼은 가슴 깊이 새겨둡니다.

시 - 집 앞 놀이터

집 앞 놀이터 너무 바쁜 현재 때문에, 앞으로 다가올 미래를 위해서. 그렇게 살다보니 어느새 추억은 죽어가고 있었습니다 그 추억을 되살리기 위해, 그 추억을 다시 떠올리기 위해 추억이 묻혀있는 집 앞 놀이터를 나가봅니다 술래잡기를 하던 추억... 미끄럼틀을 타던 추억... 과거를 생각하며 벤치에 앉아보았습니다 놀이터 벤치에 앉아서 주위의 모든 것을 둘러보니 모든 곳이, 모든 것이 똑같아 보였지만, 그곳에는 딱 두 개, 나와 시간만 바뀌어 있었습니다.