본문 바로가기

전체 글

[python] algospot RUNNINGMEDIAN 문제 -> 문제 링크 : https://algospot.com/judge/problem/read/RUNNINGMEDIAN algospot.com :: RUNNINGMEDIAN 변화하는 중간값 문제 정보 문제 한 수열의 중간값(median)은 이 수열을 정렬했을 때 가운데 오는 값입니다. 예를 들어 {3,1,5,4,2}를 정렬했을 때 가운데 오는 값은 3이지요. 수열의 길이가 짝수일 때 algospot.com 문제풀이 수열의 길이가 최대 20만이기 때문에 매번 새로운 숫자가 들어왔을 때 중간값을 구하는 방법으로는 시간 안에 해결할 수 없다. O(nlogn)이나 O(logn)에 해결할 수 있는 방법이 필요하다. 수열에 있는 숫자들은 모두 한 번씩은 사용해야 하기 때문에 n이 나올 수밖에 없다고 생각했고, 숫.. 더보기
[pyhon] algospot FORTRESS 문제 -> 문제 링크 : https://algospot.com/judge/problem/read/FORTRESS algospot.com :: FORTRESS 요새 문제 정보 문제 중세의 성과 요새들은 보안을 튼튼히 하면서도 더 넓은 영역을 보호하기 위해 여러 개의 성벽을 갖고 있었다고 하지요. 전세계에서 가장 편집증이 심한 영주가 지은 스트로 algospot.com 문제풀이 외벽이 아닌 성벽은 항상 자신보다 큰 하나의 성벽 안에 포함되어 있다. 각 성벽은 계층적 구조를 갖고 있으며 이는 트리로 표현이 가능하다. 외벽은 겹치지 않기 떄문에 항상 반지름이 작은 외벽이 더 큰 반지름을 갖는 외벽을 포함할 수 없다. 그렇기에 트리로 표현한다면 반지름이 큰 외벽이 항상 부모 노드일 수밖에 없다. 반지름이 큰 외벽.. 더보기
[python] algospot TRAVERSAL 문제 -> 문제 링크 : https://algospot.com/judge/problem/read/TRAVERSAL algospot.com :: TRAVERSAL 트리 순회 순서 변경 문제 정보 문제 트리를 순회하는 알고리즘은 트리의 모든 노드들을 특정 순서에 맞춰 방문하지만, 트리는 배열처럼 1차원적인 구조가 아니기 때문에 단 한 가지의 당연한 �� algospot.com 문제풀이 전위 순회식과 중위 순회식을 이용해 후위 순회식을 만드는 코드를 작성해야한다. 순회식에는 각각 특성이 있는데, 전위 순회식은 루트와 왼쪽 서브트리, 오른쪽 서브트리 중 루트를 먼저 방문하고, 중위 순회식은 왼쪽 서브트리를 먼저 방문하고 루트를 방문하게 된다. 순회식은 재귀적으로 돌며 매 순간 루트, 왼쪽 서브트리, 오른쪽 서브.. 더보기
[python] baekjoon 3111 검열 문제 -> 문제 링크 : https://www.acmicpc.net/problem/3111 3111번: 검열 문제 김상근은 창영마을에서의 권력을 유지하기 위해 신문을 검열하려고 한다. 상근이는 텍스트 T에서 A라는 단어를 다음과 같은 알고리즘을 이용해서 모두 없애려고 한다. T에 A가 없으면 알고� www.acmicpc.net 문제풀이 문자열이 최대 30만자이기 때문에 문자열 T에 있는 문자들을 한번씩만 탐색하면서 문제를 해결해야 한다고 생각했다. 문자열 T를 앞에서부터 접근하는 리스트 front와 맨끝에서부터 접근하는 리스트 back을 만들고 한칸씩 이동하면서 새로운 문자가 들어올 때 마다 리스트에 문자열 A가 만들어지는지 검사하면서 나아간다. 만약 리스트 front나 back에 문자열 A가 만들어지면.. 더보기
[python] baekjoon 2879 풀이 문제 문제 링크 -> https://www.acmicpc.net/problem/2879 2879번: 코딩은 예쁘게 문제 백준이는 한 작은 회사에 취직했다. 이 회사에서 백준이는 소스 코드의 뒤죽박죽인 인덴트를 고치고 있다. 인덴트는 각 줄을 탭 키를 이용해 들여 쓰는 것을 말한다. 다행히 백준이가 사용� www.acmicpc.net 문제풀이 문제를 보면 최대한 많은 줄에 탭을 추가하거나 삭제해야 최솟값으로 일을 끝낼 수 있다.각 줄에서 어떤 행동을 해야하는지 알아내기 위해서 첫째 줄을 둘째 줄에 있는 값으로 빼주면 각 줄에서 해야할 행동을 구할 수 있다.양수가 있으면 탭을 추가해야하는 부분이고 음수가 있으면 제거해야하는 부분이다. 반복문을 통해 첫 줄부터 끝까지 탐색해간다. 만약 현재 줄이 이전 줄과 같.. 더보기
[python] algospot ITES 문제 -> 문제 링크 : https://algospot.com/judge/problem/read/ITES algospot.com :: ITES 외계 신호 분석 문제 정보 문제 수환이는 외계에서 날아오는 전파를 연구하는 범세계 대규모 프로젝트, ITES@home에 참가하고 있습니다. 외계에서 날아오는 전파는 전처리를 거쳐 각 숫자가 [1,10000 algospot.com 문제풀이 문제 입력을 보면 최대 5000만개이다. 10000 이하의 정수 5000만개를 모두 저장하려면 64KB라는 메모리 제한에 걸리게 된다. 이 문제는 전체 입력값을 모두 보며 처리하는 것이 아닌 순간순간 필요한 입력값의 일부만 보며 처리하는 알고리즘을 짜야한다. 부분 수열은 전체 수열에서 연속되어 있어야 한다. [1,4,2,1,4,3.. 더보기
[python] algospot MINASTRITH 문제 풀이 문제 최소의 인원으로 성벽의 모든 부분을 감시하기 위해, 일부 초소에만 병사를 배치하려고 합니다. 각 초소의 위치와 감시 범위가 주어질 때, 성벽의 모든 부분을 감시하기 위해 필요한 최소한의 병사 수를 계산하는 프로그램을 작성하세요. 문제를 간단하게 하기 위해 성벽은 두께가 없는 원이고 초소는 점이라고 가정합니다 -> 문제 링크 : https://www.algospot.com/judge/problem/read/MINASTIRITH algospot.com :: MINASTIRITH 미나스 아노르 문제 정보 문제 단 한 번도 함락된 적이 없다는 성채도시 미나스 아노르에는 반지름이 8 킬로미터나 되는 거대한 원형 성벽, 람마스 에코르가 있습니다. 도시 전체를 감싸는 이 거 www.algospot.com 문제풀.. 더보기
[python] algospot POLY 문제풀이 문제 정사각형들의 변들을 서로 완전하게 붙여 만든 도형들을 폴리오미노(Polyomino)라고 부릅니다. n개의 정사각형으로 구성된 폴리오미노들을 만들려고 하는데, 이 중 세로로 단조(monotone)인 폴리오미노의 수가 몇 개나 되는지 세고 싶습니다. n개의 정사각형으로 구성된 세로 단조 폴리오미노의 개수를 세는 프로그램을 작성하세요. -> 문제 링크 : https://algospot.com/judge/problem/read/POLY algospot.com :: POLY 폴리오미노 문제 정보 문제 정사각형들의 변들을 서로 완전하게 붙여 만든 도형들을 폴리오미노(Polyomino)라고 부릅니다. n개의 정사각형으로 구성된 폴리오미노들을 만들려고하는데, 이 중 세로 algospot.com 문제풀이 문제에서 .. 더보기