문제 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 코드 풀이 입력받은 x가 0이 아니면 배열에 x를 추가하고, x가 0이면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거한다. heappush를 이용해 가장 큰 입력값이 0으로 오게 배열에 x를 추가하고, x가 0이 되면 가장 큰 요소를 반환한다. 처음에 문제 제목을 최대 합으로 보고 힙 모듈을 모른 상태에서 계속 시간 초과가 나는 이런 코드를 쓰고 있다가 heap..
Koala - 8기/코딩테스트 준비 스터디
문제 https://www.acmicpc.net/problem/12847 12847번: 꿀 아르바이트 월세를 내기 바로 전 날 까지 인 n (1 ≤ n ≤ 100,000) 일과 일을 할 수 있는 날 m (0 ≤ m ≤ n) 일이 주어진다. 그 다음 줄 에는 1일부터 n일 까지 일급 Ti가 순서대로 주어진다. (0 < Ti ≤ 1,000,000) www.acmicpc.net 코드 풀이 일급 t를 arr에 넣은 다음 arr의 누적합 psum의 index가 m+1만큼의 차이를 가질 때의 psum 값의 차이를 result에 저장하고 최댓값을 출력한다.
https://www.acmicpc.net/problem/17245 17245번: 서버실 서버실에는 모두 85대의 컴퓨터가 있고, 3분이 지나면 전체의 58%인 50대의 컴퓨터가 정상 작동된다. www.acmicpc.net 🖇 이진 탐색 코드 # 17245 # 시간초과 나는 걸로 봐선, 단순 반복문으로 풀면 안된다. # 그럼 이진 탐색으로? L==1, R==10,000,000 을 초기값으로 탐색하는 것? input = __import__('sys').stdin.readline n = int(input()) li = [] for i in range(n): li.append(list(map(int,input().split()))) sm = 0 mx = 0 for i in range(n): for j in r..
문제 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 코드 풀이 소수만 arr에 저장하기 위해 입력받은 N만큼의 리스트를 모두 True로 저장한 뒤 2부터 곱해지는 수들을 모두 False로 만든다. 이때 j를 2부터 하나씩 더하면서 곱하므로 N의 제곱근까지 범위로 설정하면 N까지 모든 소수를 찾아낼 수 있다. True로 저장된 소수를 result 안에 넣고 2부터 곱해지는 수를 False로 저장했으므로 True로 남아있는 0과 1을 빼낸다. 그 이후 투포인터를 실행하는데 L부터 R까지의 합이 N과 같으면 cnt+=1하고 합이 더 크면 L을 옮겨서 sum의 범위를 ..
https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net 🖇 투포인터 문제설명 길이가 n인 수열이 입력으로 주어지고, 그 수열에서 중복되는 숫자가 k개 이하인 "가장 긴 연속 부분 수열"의 길이를 출력하는 문제다. 코드 from collections import defaultdict input=__import__('sys').stdin.readline n,k=map(int,input().split()) li=list(map(int,input().s..
문제 https://www.acmicpc.net/problem/14495 14495번: 피보나치 비스무리한 수열 피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... 자연수 n을 입력받아 n번째 피보 www.acmicpc.net 코드 풀이 f(n)=f(n-1)+f(n-3)인 수열이므로 fibo 리스트의 길이를 3으로 설정해서 입력된 n까지 수열을 구한다. 이때 3부터 반복문을 돌려야 수열의 시작이 1,1,1,2가 될 수 있고, 리스트의 2번째 값을 기준으로 fibo를 계속 업데이트하기 때문에 n까지 fibo를 구했을 때 ..
https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 문제설명 [dp] 일렬로 나열된 숫자 중 특정한 조건에 맞게 숫자의 최대 합을 구해야 하는 문제다. (특정한 조건: 연속된 세 수는 취할 수 없음 - 두 수를 연속으로 취했다면, 그 다음 수는 취할 수 없음) 코드 # 21735 input=__import__('sys').stdin.readline n=int(input()) li=[] for i in range(n): li.append(int(inp..
문제 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 코드 풀이 입력받은 수를 arr안에 모두 넣고 arr안에서 6가지 원소로 만들 수 있는 combinations를 모두 만든다음 출력한다. 만약 입력받은 값이 0이면 while문을 종료한다.
https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 문제설명 재귀함수를 사용하는 대표적 백트래킹 문제이다. 1,2,3 세 종류의 숫자만을 합하여, 정수 n을 만들어야하는 문제다. 가능한 모든 식 중, 사전순으로 k번째 오는 식을 출력해주면 된다. 코드 input=__import__('sys').stdin.readline li=[] n,k=map(int,input().split()) th=0 def go(li): global th global ans if sum(li) == n: t..
규칙 - 문제 인증, 블로그 포스팅, 모의테스트 참여를 하지 않을시 각각 활동비에서 -1000원씩 차감 - 학회 활동이 끝난 후, 스터디 우수 참여자에게 차감된 활동비를 N분의 1로 나눠서 지급 - 스터디 우수 참여자 기준은 남은 활동비의 내림차순으로 정렬하여 가장 높은 참여자들로 선정 백준 아이디 손홍락 - se8404 우찬희 - dener8 이솔 - ekmonet1 이은주 - leunju217 임희진 - xeexin0331 1. 문제 인증 1주차 2주차 3주차 4주차 5주차 6주차 7주차 손홍락 X X X X X X X 우찬희 O O O O O O X 이솔 O O O O O X X 이은주 X X X X X X X 임희진 X X X X X X X 2. 팀블로그 포스팅 1주차 2주차 3주차 4주차 5주차..