목록algorithm/baekjoon (3)
리미로그
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 이 문제는 구현하는 방법보다 문제 표현을 정확하게 이해하는 게 더 어려운 문제인 것 같다 재귀를 사용해서 갈 수 있는 방향이면 다시 함수를 호출할 수 있도록 하였고, cnt 변수를 통해 네 방향을 모두 확인하고 나면 다시 후진할 수 있는지를 확인하여 할 수 있으면 함수를 호출하고, 할 수 없다면 함수를 종료하도록 구현하였다 네 방향을 확인할 때는 벽인지, 이미 청소를 하였는지를 확인해야 하고, ..

https://www.acmicpc.net/problem/1753 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 하나의 정점으로부터 다른 모든 정점까지의 거리를 구하므로 다익스트라 알고리즘을 사용하였다 다익스트라 알고리즘을 리스트(O(V^2))를 이용해서 간단하게 구현할 수 있지만, 힙을 사용한 우선순위 큐를 통해 구현하게 되면 시간 복잡도가 O(ElogV) 로 줄어든다 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하므로 cost가 가장 작은 정점부터 나올 수 있도록 하면 된다 이때 cost와 no..

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 처음에 n, m의 제한을 보고 개수가 아니라 수의 제한인 걸로 착각하여 배열을 만든 후 해당 인덱스에서 값을 카운트하여 있는지를 확인하였다 인덱스에러가 발생하여 문제를 다시 이해하였다(문제 꼼꼼히 읽자..!) 이진 탐색을 이용해서 해당 값이 있는지 확인하는 방식으로 바꿔 풀었다 시간 초과 없이 해결! import sys input = sys.stdin.readline def binary_search(a..