목록python/Algorithm (23)
Kim Seon Deok
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net n으로 연산의 횟수를 받아, n 회 입력한 숫자를 리스트 array에 추가 힙 모듈은 min heap만을 지원한다. 따라서 입력값이 0이 아니면 -1을 곱해 힙에 push해야한다. 그러다 보면 최종적으로 절댓값이 가장 작은 수가 힙의 루트에 위치하게 된다. 리스트 array에서 원소가 0 보다 클 경우, 0보다 큰 원소에 -1을 곱해 리스트 ans에 추가 리스트 array에서 ..
https://www.acmicpc.net/problem/1034 1034번: 램프 첫째 줄에 N과 M이 주어진다. N은 행의 개수이고, M은 열의 개수이다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 램프의 상태가 주어진다. 1이 켜져있는 상태이고, 0이 꺼져 www.acmicpc.net 한 행에 0의 갯수를 p 라 하자.( p>=0, k >=0 ) 1. k 가 홀수일 때 p가 홀수 pk일 때 pass p가 짝수 pass 2.k가 짝수일 때 p가 짝수 pk일 때 pass p가 홀수 pass possible_list의 길이가 0인 경우, 0을 출력 >> 모든 행이 불가능한 경우 possible_list의 길이가 0보다 큰 경우 문제의 예제입력 5 에서, k = 6, p = 2..
https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net n > 1일 때 사자를 0마리 넣을 때, 1마리 넣을 때, 2마리 넣을 때,, n마리 넣을때 까지 하여 경우의 수를 구하였다. n = 0 >> 1가지로 취급 [0,0,0]로 0번째 행 설정 n = 1 >> 3 = 1 + 2 [1,1,1]로 1번째 행 설정 n = 2 >> 7 = 1 + 4 +2 n = 3 >> 17 = 1 + 6 + 8 + 2 n = 4 >> 41 = 1 + 8 + 18 + 12 + 2 n = 5 >>101 = 1 + 10 + 32 + 38 + 16 + 2 사자를 우리에 넣을 때 n-1번째 행에서 0마리를 넣은 경..
https://www.acmicpc.net/problem/17371 17371번: 이사 $(\frac{2}{3}, \frac{1}{3})$으로 이사를 가면 가장 가까운 편의시설은 (0, 1)으로 거리는 $\frac{2\sqrt{2}}{3}$이고, 가장 먼 편의시설은 (-4, 1) 혹은 (4, -3)으로 거리는 둘 다 $\frac{10\sqrt{2}}{3}$이다. 두 거리의 www.acmicpc.net "가장 가까운 편의시설까지의 거리와 가장 먼 편의시설까지의 거리의 평균이 최소가 되는 좌표로 이사하려고 한다. " 가장가까운 편의시설까지의 거리 = 0 이어도 된다. 즉 편의시설에 집이 위치해도 되는 것이다. 그러면 가장 먼 편의시설까지의 거리가 최소가 되어야 한다. 따라서 각 좌표를 기준으로 하여 가장 긴..
https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 이전 시도. 커서의 위치를 point변수로 설정하고 ""가 나오면 point를 1감소 1증가시켜 그 pointer에 해당하는 인덱스를 지웠다. 하지만 이 방식으로 하다보면 반례가 많고 시간복잡도가 매우 커, 양방향 대기열인 덱을 써보았다. import sys n = int(sys.stdin.readline()) # 입력받는 횟수 # 대문자, 소문자, 숫자, 백스페이스,화살표 password..