https://www.acmicpc.net/problem/3002접근법구간합을 저장하는 세그먼트 트리 + 구간 업데이트를 위한 lazy propagtion으로 접근하면 진행이 잘 안됨9 -> 0 이 되는 처리를 어떻게 할 것인가...9로 된 것들만 처리를 해본
설명그레이 코드라는 것이 있음0000..000으로 시작해서 한군데만 바꿔가면서 나열함. 중복 안됨, 모든 숫자나와야함, 끝은 시작과 연결되어야함서로 인접하는 조건이 주어짐(최대 두개). 조건을 만족하는 그레이코드 구하기접근일단 아무 그레이코드를 만든다재귀적으로 생각해본
https://www.acmicpc.net/problem/1039경우의 수(실제로 다루어야 하는 숫자들) 이야기만 해보려고 함주어지는 입력 : 최대 1000000교환 횟수 : 최대 10최대 7자리를 다루어야할 것처럼 보이지만, 교환의 특성으로 인해 100000
https://www.acmicpc.net/problem/16901크루스칼, 프림 방식은 시간초과xor 특성 : 서로 비트가 다르면 1, 같으면 0최상위 비트가 같은 것끼리 알아서 트리를 구성한다고 치고두 그룹을 연결하는데 가장 적은 비용을 찾는다. : mer
https://www.acmicpc.net/problem/1848터널 하나가 갈때 올때 서로 값이 다른 것이고 한번만 쓰이는 것임한점만 방문해서는 안되고(1 - 3 - 1 이런것은 안되니까) 2번 이상 방문했을때 최소값을 구하고 싶은데 잘 안되었음(중복해서 점
https://www.acmicpc.net/problem/17407접근법올바른 괄호 문자열의 조건() 쌍이 맞고어느 한 부분에서도 )가 초과되지 않아야함( = 1, ) = -1로 바꿔서 생각해보면1 ~ n까지 sum = 0이고1 ~ n까지 누적합의 최소값이 0
https://www.acmicpc.net/problem/10637기본 접근법MST를 구성한다.사용하지 않은 간선을 모아둔다.i번째 간선이 MST에 사용되지 않았으면 => MST값i번째 간선이 MST에 사용되었으면 => MST에서 i번째 간선을 제거했을때 최소
https://www.acmicpc.net/problem/21279접근법시작점이 고정이고(0,0) x, y가 증가하는 방향으로 진행됨x 점 기준으로 세로 선을 놓는다고 할때, y 가 증가하는 방향으로 갈 수록 담아야하는 보석의 수도 증가할 것임C를 넘지 않는
https://www.acmicpc.net/problem/1273접근법한번에 아이디어는 떠올리지 못했던 문제각 열을 "합산" 해서 접근한다어떤 층의 점수가 얼마일지를 미리 계산해놓는다누적합 이용 (+1, -1) 기법각 열마다 (+점수, -점수)를 하고 나중에
https://www.acmicpc.net/problem/3151 접근법정렬 후 같은 숫자끼리 묶음1개로 가능한 경우2개로 가능한 경우3개로 가능한 경우(i, j)에 대해서 k를 이동해가며..다른 아이디어 (다른 코드 참고)k 번째 값에 대해서, 이전 값(왼쪽
https://www.acmicpc.net/problem/20119접근법어떤 물약을 만드는 레시피가 2개 이상 존재할 수 있음정댭률이 낮은 이유가 있었음edge count 이용
https://www.acmicpc.net/problem/5817접근법구간트리난쟁이키 = 난쟁이 인덱스로 봐도 무방함난쟁이 인덱스 = 위치구간트리(난쟁이 인덱스, 난쟁이 인덱스) = (최소값, 최대값)난쟁이가 서로 서로 이웃해 있으면 = 빈공간이 없으면 = 최
https://www.acmicpc.net/problem/3136접근법점을 두 배로 처리함(대각선으로 만나는 것 처리하기 위해서)점 방문 여부를 체크선이 중복되지 않은 상태에서 같은 점을 두 번 방문하면 공간이 생김map 이용선 사용 여부를 체크(y, x)에서
https://www.acmicpc.net/problem/6135접근법플로이드-워셜처럼 풀 수 있다.j를 중간점으로 할 때 max(di, dj)가 di가 될 수 있다.기존에 di가 있다면 그 값과 비교해서 작은 값을 취한다.1 ~ N의 점에 대해 중간점으로 체
https://www.acmicpc.net/problem/15977접근법relabeling서로 다른 숫자로 구성되어있으므로 0부터 순차적으로 번호를 부여함1행 ~ 3행 모두 작업행이 두개만 주어지는 경우에는 3행을 임의로 만들어서 2행과 같다고 해도 동일한 효
https://www.acmicpc.net/problem/5820접근법centroid decomposition거리 배열을 갱신해나감거리를 만들기 위한 길이가 최소인 것을 유지centroid를 지나는 경로 중 길이가 k인 경로를 찾기 위해$k-x$의 길이 + $
https://www.acmicpc.net/problem/21759접근법팀을 subtree로 연결하는 아이디어두 개의 팀의 팀장의 관계팀장이 서로의 조상이 아닌 경우한쪽이 다른 한쪽의 조상인 경우부모노드에서 자식 노드를 연결하는 아이디어자식 노드를 루트로 했을
https://www.acmicpc.net/problem/21761접근법대회 문제라 공식 해설은 있지만, 내 접근법을 기록해봄A,B,C,D의 증가는 큰 것부터 사용하는 것이 유리함최종 결과를 도출했을때 바로 이전 상태를 생각해보면 엄밀하지는 않지만 다음과 같이
https://www.acmicpc.net/problem/5922접근법중간값이 X이상인 부분수열의 경우의 수중간값은 홀수개인 경우 중간 위치, 짝수개인 경우 중간보다 큰 위치(celling을 해석)임의의 시작 위치에서 가능한 경우의 수들을 합해나감부분 수열에서
https://www.acmicpc.net/problem/21762접근법공식 해설은 이 곳을 참고하고 나의 접근법을 적어봄https://koi.or.kr/assets/koi/2021/1/solutions/h2-answers.pdf공통 부분 수열이 각각
https://www.acmicpc.net/problem/8452접근법간선을 붙이면서 출력을 처리해주면 되고 BFS를 수행하면 되는데생각하는 방식의 시간복잡도 계산이 어려웠다.시간 복잡도 계산을 생각해보자쿼리마다 bfs를 수행하면 $O(Q \* (N+M))$
https://www.acmicpc.net/problem/22197문제설명트리가 주어지고각각의 그룹이 주어지는데(문제에서 장관으로 표현)그룹의 원소들은 서로 연결되어야함 ==> 그룹마다 필요한 간선이 있을 것임간선마다 필요로 하는 그룹의 개수가 있을텐데, 그
https://www.acmicpc.net/problem/8916https://www.acmicpc.net/problem/8944문제요약주어진 순열로 이진 트리를 구성했을때동일한 모양이 나오는 순열의 경우의 수 구하기접근법루트는 정해질 것임루트가 정해
https://www.acmicpc.net/problem/15902문제 요약자르는 연산, 합치는 연산으로 A배열을 B로 만들때최소 연산 횟수, 경우의 수 구하기(연산의 순서가 다름)접근법A배열의 가장 끝 원소(왼쪽이나 오른쪽)를 봤을때....오른쪽에서부터 본다
https://www.acmicpc.net/problem/13538문제 요약숫자를 추가 1번 (끝에서)숫자를 삭제 여러번 (끝에서)범위 쿼리xor 했을때 큰 값k번째 작은 값주어진 숫자보다 작거나 같은 개수특징변경은 끝에서만 발생추가는 1회만 가능 ==> 많아
https://www.acmicpc.net/problem/13504요약주어진 수열의 연속한 부분수열의 xor합이 가장 큰 것을 구함접근법 - 실패trie(xor) + 분할정복merge하면서 중심에서 시작해서 왼쪽의 모든 경우에 대해 xor을 구하고중심에서 시작
https://www.acmicpc.net/problem/12928문제 요약노드가 n개이고 단순경로가 s개인 트리가 가능한지 판단단순경로 : 3개의 노드가 이어진 형태들의 집합(중복 없이)접근법1개, 2개일때는 만들 수 없음발상노드가 2개 이상인 기존 트리에
https://www.acmicpc.net/problem/13896문제 요약트리의 루트가 바뀌고특정 노드의 자식 개수를 카운팅접근법트리를 1번 노드를 루트로 정하고 고정시킴새로운 루트(r)와 특정 노드(a)의 관계를 관찰하다가 정리하면r이 a의 자식인 경우 :
https://www.acmicpc.net/problem/17399문제 요약트리가 주어졌을때 세 점의 외심이 있는지 없는지 판단.외심 : 세점으로부터의 거리가 같음, 거리가 최소인 점접근법문제의 풀이가 존재하지만 다음과 같이 해결해봄(엄밀하진 않은 것음)세 점
https://www.acmicpc.net/problem/2927문제요약주어진 내용의 쿼리를 수행트리에서 u부터 v까지의 합u의 값이 변함접근법트리는 나중에 구성한다bridge가 될 수 있는 경우에만 간선을 사용함bridge만 가지고서는 트리가 될 수 없기때문
https://www.acmicpc.net/problem/2419문제요약x좌표에서 한칸씩 이동했을때 먹을 수 있는 가장 많은 사탕이동할때마다 박스의 사탕은 1씩 감소함접근법dp어려웠던 부분특정 시점에서 먹을 수 있는 최대의 사탕을 구하고 싶지만어떻게 이동했느냐
https://www.acmicpc.net/problem/16680문제요약안수빈수 : 자리수합이 홀수접근법수빈수는 무조건 만들수 있음 : 연속으로 연결하면 됨12345 ==> 12345 123451234567 => 1234567 1234567숫자에 000...
https://www.acmicpc.net/problem/23082요약\-1, 0, 1을 사용해서 삼진법으로 표현접근법공식풀이어려웠던 문제였는데 난이도 투표는 그렇지 않다..일단 음수는 모든 부호를 바꾸면 된다고 생각함3진법으로 표현하는 방법은가장 근접한 ${
https://www.acmicpc.net/problem/23090요약좌표가 주어질때마다 적절한 점을 골라 거리가(맨하탄거리) 최소인 점 + 그 때의 거리 구하기최소인 점은 ${x = 0}$ 위에 있고연속으로 주어지는 좌표마다 처리를 해야함공식 풀이접근법x 좌
https://www.acmicpc.net/problem/23089요약트리에서 거리가 어떤 노드와 거리가 K 이하인 노드를 묶었을때 가장 큰 값${K <= 20}$접근법각 노드마다 BFS를 수행하면 되지만 시간복잡도가...트리에서 자식들의 거리로 거리 D
https://www.acmicpc.net/problem/23256접근법공식해설은 여기 링크 같음 : https://sunrincat.tistory.com/9가장 끝 조각이 ${1 \* 1}$인 경우와 그렇지 않은 경우로 구분해서 접근했음끝 조각이 $
https://www.acmicpc.net/problem/23046요약쿼리는 입력 문자열로 주어짐S를 갱신함(숫자를 추가하거나 뒤집거나)S가 표현하는 숫자들의 합을 구함공식 해설은 여기에 있음 : https://www.youtube.com/watch?
https://www.acmicpc.net/problem/23043요약인터렉티브 문제 : 쿼리-결과를 이용해서 정답 찾기쿼리를 통해 트리의 간선을 구하는 문제해석해보면 쿼리로 주어진 노드를 포함하는 가장 작은 트리의 크기를 반환함접근법두 개씩 쿼리를 줬을때 "
https://www.acmicpc.net/problem/23044요약트리가 주어짐, 제거해야하는 점, 제거하면 안되는 점이 주어짐폭탄을 설치하면 경로 p 미만인 점들이 삭제됨조건을 만족하는 가장 큰 p의 값 구하기접근법폭탄 설치 개수의 제한은 없음p값이 1일
https://www.acmicpc.net/problem/23036요약부분합 / 길이 가 주어진 값 P보다 큰 경우의 수를 구하기접근법일일이 합을 구하고 나누고의 아이디어에서 확장이 어려웠음P의 값으로 x1, x2.... 하는 아이디어만 생각이 났지만 결국 완
https://www.acmicpc.net/problem/23355요약트리가 주어지고, 쿼리를 수행함x ~ y 경로에 점 u가 있는지x ~ y 경로에 u-v로 된 간선이 있는지접근법HLD로 접근함HLD의 subtree는 오일러투어 번호가 연속적임을 이용해서연속
https://www.acmicpc.net/problem/22981아이디어각각의 팀이 짐을 나누어서 처리한다고 생각하고 접근함${x/v_1 + (k - x)/v_2}$각각의 팀이 작업을 같이 한다고 접근하는 아이디어가 인상적이었음${k/(v_1+v_2)}$
https://www.acmicpc.net/problem/22995요약증가하는 부분수열의 개수가 K인 수열을 만들며 됨${1 <= K < 2^{18}, 만드는 수열의 길이 <= 34}$접근법단순하게는 1, 1, 1, ... 처럼 만들어도 되지만
https://www.acmicpc.net/problem/22997요약좌표 평면이 주어지고(500 \* 500)다음 명령을 순서대로 수행했을때 처치한 적의 수를 카운트특정 범위 전체를 공격하는 명령특정 좌표에 적이 나타나는 명령나타난 적을 퇴각 시키는 명령공식
https://www.acmicpc.net/problem/22952접근법문제 티어는 낮지만(실버) 아이디어가 쉽진 않았음전체 합은 정해져있기때문에 마지막 값은 정해져 있으므로 처음 값은 그 값으로 하고......그리디처럼 해야하나 했는데 어려웠음두개씩 짝 지으
https://www.acmicpc.net/problem/22954요약그래프가 주어짐간선을 적절히 제거해서 두개의 트리로 분리(공유하는 것이 없도록 분리)트리의 크기가 서로 달라야함분리가 된다면 정보를 출력접근법그래프에서 트리 구성(union-find) ->
https://www.acmicpc.net/problem/22957요약3, 5, 7로만 숫자를 만들어야함3, 5, 7이 사용된 횟수가 모두 짝수이면 안됨30자리 이하 숫자중에서 k 번째로 큰 숫자 구하기접근법dp를 이용해서 경우의 수를 제거해 나가면서 k 번째
https://www.acmicpc.net/problem/22958요약인터렉티브 문제수열에서 가장 큰 값의 위치를 찾는 것쿼리를 사용할 수 있고, 쿼리 제한 조건이 있음접근법반씩 줄여나가는 접근법이 필요함1부터 N까지 1간격 쿼리를 사용하면 최대값이 무엇인지
https://www.acmicpc.net/problem/22959요약수열이 주어지고 쿼리를 수행특정 위치 업데이트 쿼리i 를 포함하는(l ~ ... i ... ~ r) 값이 j이상인 구간합의 최대값 쿼리접근법두번째 쿼리에서 구간합이 최대이려면 j 이상인 가장
https://www.acmicpc.net/problem/22960요약공식해설 : https://icpc-sinchon.io/campcontest이분매칭 + 홀의 정리를 알아야하는 문제접근법 공식 해설을 보고 해결함이분매칭으로 perfect 매칭인지
https://www.acmicpc.net/problem/22964요약길이 n인 배열에 길이 k인 필터를 씌워서 합성곱(?) 연산을 시킴배열에 가능한 숫자는 1 ~ X 범위모든 경우의 수를 고려했을 때 나올 수 있는 결과들의 합을 나열접근법a 배열의 첫자리,
https://www.acmicpc.net/problem/22967요약트리가 주어지고최대 n - 1 개 간선을 추가하여 지름을 최소화하기지름 : 가장 먼 노드간의 거리n <= 300접근법아이디어가 막막했으나, 티어를 보고 힌트를 얻음최선을 다해서 지름을
https://www.acmicpc.net/problem/22899요약N개의 문제 중 K개를 출제하는데, 총 출제 시간을 적게 해야함문제마다 출제가능한 사람이 1명씩 주어짐문제마다 출제에 가능한 시간이 주어짐1사람당 출제 가능한 문제 횟수의 제한을 1 -> N
https://www.acmicpc.net/problem/22901요약2100 ~ 2399 사이 숫자를 "y 이상인가?" 쿼리를 통해 맞춘다.최대 1회에 한해 잘못된 답변이 나옴 : y 미만인데 y 이상이라고 답함쿼리 회수 18, 14, 13 차등 배점접근법이
https://www.acmicpc.net/problem/22880요약서로 다른 수의 수열이 주어짐구간을 나누고, 구간에서 가장 큰 값이 있을 것임가장 큰 값이 오름차순으로 되도록 구간을 나누는 경우의 수접근법앞에서부터 구간을 나누어놓으면, 뒷 구간 경우의 수
https://www.acmicpc.net/problem/21873요약양쪽에 n 개씩 검은 개구리, 흰 개구리가 있음일정한 규칙을 준수하며 서로의 위치를 바꾸는 방법을 출력빈칸으로 한칸 움직이거나색깔이 다른 개구리를 뛰어넘어 빈 칸으로 움직이거나접근법다른분들
https://www.acmicpc.net/problem/21777요약job scheduler를 수행한 결과가 주어질때, 원래의 job을 출력하는 문제job scheduling우선순위 값이 큰 것id가 작은 것접근법출력형식에서 오류가 있어서 헤맴선택한 프로세스
https://www.acmicpc.net/problem/21778요약스케쥴링에 따라 프로세스를 실행우선순위 큰 것, 아이디 작은 것Tc번째에 선택되는 프로세스 찾기Tc의 값이 크기때문에 완전탐색으로는 안됨아이디어 떠오르기 힘들었는데 티어도 생각보다 많이 낮고
https://www.acmicpc.net/problem/21737접근법생각하는 그 그것임다만 마지막에 꼭 C가 나온다고는 말 안했음!U가 나오는 경우에 나누기 0을 시켜서 실패함
https://www.acmicpc.net/problem/21316접근법스피카 노드의 특징인접노드의 개수가 3인접 노드들의 인접노드 개수가 1, 2, 3인 것
https://www.acmicpc.net/problem/21321요약클레이를 맞춰서 최대의 점수를 얻어야함클레이마다 주기와 점수가 있음1 ~ N 번 위치 클레이가 있음 : 낮은 클레이를 맞추면 그 위 클레이는 못맞춤, 주기가 겹치면 아래 클레이만 맞추게됨라운
https://www.acmicpc.net/problem/21320문제요약이진포화트리가 주어짐(최대 높이 3000)특정 노드에서 시작해서 전체 노드를 탐색함중복 방문이 안되기때문에 "순간이동"으로 원하는 노드로 이동높이, 시작 위치가 주어질때 순간이동의 최소값
https://www.acmicpc.net/problem/20938문제 요약불이 들어온 전구 개수의 최대 기대값을 구해야함전구가 일렬로 늘어서있음한 전구가 꺼지면 오른쪽은 다 꺼짐전구 스트립은 최대 K개 만큼 분할 가능하고(최대 10개), 분할된 전구는 독립적
https://www.acmicpc.net/problem/20946문제요약수를 합성수로 인수분해(${10^{12}}$)여러가지 경우가 나오면 사전순으로 가장 앞서는 것(문제 조건 참고)길이가 짧다고 무조건 앞서는건 아니고왼쪽부터 비교하다가 처음으로 틀리는 지점
https://www.acmicpc.net/problem/20943문제요약서로다른 직선이 주어짐 : ${ax + by + c = 0}$서로 만나는 직선의 쌍의 개수 구하기접근법기울기를 구함(1, 0), (0, 1) 기울기 처리음수기울기는 (-a, b) 처럼 처
https://www.acmicpc.net/problem/20941문제요약n개의 비트를 모두 나열하는데 ${b_0, b_1, ...}$${bi, b{i+1}}$ 의 서로 같은 비트의 개수를 x 라고 할 때x의 합을 최소로 하는 나열을 구하기접근법반전된 비트는
https://www.acmicpc.net/problem/20947요약지도가 주어지고, 폭탄의 위치를 출력하면됨(답이 여러개임)폭탄은 상/하/좌/우로 뻗어나가고, 충격파가 건물에 닿으면 건물 잔해가 됨충격파는 건물/건물잔해에 닿으면 소멸됨접근법처음에는 어떻게
https://www.acmicpc.net/problem/20925문제요약경험치를 최대로 만들면 됨입장제한 경험치가 있고, 시간당 받는 경험치가 있고, 이동하는데 드는 시간이 있음최대 1000분 동안접근법처음봤을때는 당황스러웠음시간 에 있을 때 얻을 수 있는
https://www.acmicpc.net/problem/20927문제 요약노드별 차수 제약이 있는 상태에서 MST를 구성노드 <= 10, 간선 <= 27접근법완전탐색 : 트리를 만들어야하므로 사용할 간선의 개수정해져있고, 전체에서 선택하는 문제임,
https://www.acmicpc.net/problem/20928문제요약M 지점까지 가는 최소 환승 횟수${p_i}$ 지점마다 ${+x_i}$ 범위 이내는 갈 수 있음. 시작은 ${p_1}$N은 10만개, 위치는 100만, x는 1만접근법dp처럼 해야하나 했
https://www.acmicpc.net/problem/20929 문제요약 interactive 문제 ${N = 2^k}$ 크기의 배열 두 개가 주어짐(쿼리만 가능) 오름차순으로 정렬했을때 N번째 숫자 알아내기 A/B 배열에서 x번째 숫자가 무엇인가?
https://www.acmicpc.net/problem/20930문제요약선분으로 된 우주정거장이 있음우주선은우주정거장 내부를 이동하거나x축으로 이동하거나y축으로 이동하거나우주정거장 a에서 b를 이동할 수 있는지 쿼리 수행N <= 200000, Q <
https://www.acmicpc.net/problem/20931문제요약트리에서 두 가지의 명령을 수행혹 붙이기 : 연산을 통해 얻은 노드에 새로운 노드 추가 + 간선 가중치찾기 : 특정 노드에서 길이가 l인 곳의 노드 찾기(l이하에 걸쳐 있는 노드로 생각하
https://www.acmicpc.net/problem/20932문제요약n개의 숫자가 주어짐(1 ~ 9, 16개)n - 1개로 순열을 만들고 그대로 숫자가 됨남아있는 마지막 숫자가 순열로 만든 숫자의 약수일 확률 구하기접근법순열을 다 구해서 일일이 나누는건
https://www.acmicpc.net/problem/20933문제요약지점별 마스크의 가격과, 지점간 이동 시간이 주어짐 (N = 10만)두 가지 쿼리를 수행특정 지점에서 시간 x로 이동할 수 있는 지점 중 최소 마스크 가격특정 지점간 이동시간을 변경접근법
https://www.acmicpc.net/problem/20934문제 요약게임이론, 스프라그-그런디 정리스프라그-그런디 정리 공부했음공식해설은 : https://upload.acmicpc.net/d2663735-8ae7-4a93-9bce-9a7f79
https://www.acmicpc.net/problem/20666문제요약몬스터는 N개가 주어지지만 M개만 잡으면 됨몬스터별 아이템을 얻을 수 있음몬스터별 난이도가 있음a아이템 없이 b몬스터를 잡을경우 t만큼 어려워진다는 조곤이 30만개 주어짐최고 난이도를 최
https://www.acmicpc.net/problem/20667문제요약cpu, memory를 일정 수준 이상 확보하면서 우선순위 합은 최소화 시키기작업 100개, 목표 cpu 1000, 목표 메모리 100000, 작업당 우선순위 5접근법cpu를 만족하기위한
https://www.acmicpc.net/problem/1524접근법최대값을 갖고 있는 사람이 끝까지 남겠다!세준이가 더 우세할테고
https://www.acmicpc.net/problem/20669문제요약그래프가 주어지고 이동을 함 (1번, 2번, ... K번)시작점 그룹이 있고, 종료점 그룹이 있음서로다른 모든 경우의 수 구하기N = 100, K = 1000000접근법인접행렬 + 그래프
https://www.acmicpc.net/problem/19939문제요약n개의 돌을 k개에 1개 이상 나눠담고모두 다른 값이어야하고최대값 - 최소값 차이가 적게접근법x만큼 채워놓고 추가로 0 ... k - 1 채워놓는다는 생각으로 n에서 sum(0 ~ k-1
https://www.acmicpc.net/problem/20551pythoninput() ==> 시간초과sys.stdin.readline ==> OK변형 import sysinput = sys.stdin.readlinen, m = map(int, input(
https://www.acmicpc.net/problem/12919문제 요약문자열 끝에 "A" 추가문자열 끝에 "B" 추가 후 뒤집기S -> T 가 가능한지 판단(길이 50)접근법S -> T 완전탐색으로 접근했는데 어려웠음(시간초과)T -> S 로 가는 방법을
https://www.acmicpc.net/problem/1091문제 요약길이 48인 카드 나열이 있음카드는 가장 앞에서부터 0, 1, 2, 0, 1, 2, ... 플레이어에게 줄 것임카드를 섞는 규칙이 있음 (1 : 1 대응 같은 shuffle)각 카드마다
https://www.acmicpc.net/problem/17089문제요약서로간에 친구인 A,B,C를 고르고, 친구수의 합을 구함(서로는 친구수에서 뺌 즉 -6)최소값 구하기접근법A,B,C 완전탐색을 하면 4000 3999 3998개간선을 선택하는 경우에도
https://www.acmicpc.net/problem/9937문제요약${ax + by + c}$ 로 표현되는 직선이 30만개(다행히)세 직선이 한 점에서 만나는 일정은 없음만들 수 있는 삼각형의 개수 구하기접근법기울기로 접근해야하는 것은 알겠음 : 서로다른
https://www.acmicpc.net/problem/10909접근법사원수의 켤레 복소수(?)를 구하고1/n이 되는 역원을 구해서 곱하는 아이디어ijk = -1에서 ij = k, -j = ik, -jk = -i, jk = i, ..... 이런 아이디어(a
https://www.acmicpc.net/problem/3008문제요약1500개의 점에서 직각 삼각형의 개수 찾기중복되는 점 없음접근법길이로 접근하려고 했으나 어떻게 하든 N^3임한 점을 기준으로 연결된 점들의 기울기를 구할 수 있음기울기가 서로 직각인 것들
https://www.acmicpc.net/problem/13439문제요약점화식이 주어짐S(n, k)의 약수 개수 구하기접근법S(X, 1) = X! 임을 이용함점화식을 진행하다가 보면 언젠가는 X! 모양이 될 것임미리 X!이 어떤 소인수로 구성되어있는지 구해놓
https://www.acmicpc.net/problem/18513문제요약좌표에 지점들이 쭉 있고(10만)뭔가를 세울 수 있는데 초반에 제공되었던 지점과의 거리가 비용임K개를 설치하는데 비용을 적게 하는 것 구하기접근법우선순위 큐 + map을 이용해서 거리가
https://www.acmicpc.net/problem/17619문제요약개구리가 점프해서 이동 가능한지 판단접근법y값 무시하고 직선끼리 union-findpython코드를 잘못구현했는지
https://www.acmicpc.net/problem/12925문제 요약https://www.acmicpc.net/problem/12728구글 코드잼에 나왔던 문제이고, 풀이도 있음접근법다시 풀어도 아이디어 도출이 어려웠음${a = 3 + \\sq
https://www.acmicpc.net/problem/6068문제요약N 개의 작업들이 있음(1000개)걸리는 시간, 끝내야하는 시간이 있음가장 늦게 시작할 수 있는 시간 구하기 (시작 = 0)접근법마지막에 해도 되는 작업을 찾아본다 => 어쨌든 모든 작업을
https://www.acmicpc.net/problem/19585문제 요약색상(4000개, 1000글자), 닉네임(4000개, 1000글자)팀명(20000개, 2000글자)이 색상+닉네임으로 가능한지 판단시간제한 3초, 메모리제한 1024MB접근법트라이 두개
https://www.acmicpc.net/problem/19535문제요약트리에서 ㄷ요소와 ㅈ요소의 개수를 세고 결과를 출력접근법인접 노드 카운트를 센다 : incntㅈ요소는 icnt >= 3인 것 중에서 ${\_nC_3}$을 하면됨ㄷ요소는 착각을 했음dfs로
https://www.acmicpc.net/problem/12906문제요약막대가 세개 있음 : A, B, C원반은 세 종류가 있음 : A, B, C원반 개수의 합은 10원반 크기는 같음. 이동은 가장 위에 있는 것에서 이동원반의 종류에 해당하는 막대로 가는데
https://www.acmicpc.net/problem/20191문제 요약문자열 S와 T가 주어짐"줄임말"의 정의가 있음T를 n번 반복한 문자열이 있고, S가 그 문자열의 줄임말이 될 때 이를 만족하는 n의 최소값N : S의 길이, 100만M : T의 길이,
https://www.acmicpc.net/problem/17976문제 요약시작점, 길이를 갖는 thread가 x축위에 배치되어 있음서로 포함관계는 없음thread위에 점 한개를 찍음(knot라고 표현)이렇게 찍은 점들간의 거리중에 가장 작은 값이 있을텐데,
https://www.acmicpc.net/problem/1311문제 요약n개의 사람과 작업이 있음(n = 20)각각의 연결마다 비용이 있음1:1로 매칭이 되어야함최소 비용 구하기접근법n = 20이라 비트마스킹을 하면 될 것 같음일단 완전 탐색을 생각해보면 사
https://www.acmicpc.net/problem/1800문제요약1부터 n까지 학생이 있음(n = 1000)P개의 쌍이 연결되어있고 비용이 있음(P = 10000)n을 어떻게든 1에 연결하는데 연결 과정에 발생한 비용중에서 k개를 제거하고 남은 것 중에
https://www.acmicpc.net/problem/16991문제요약외판원 순회n = 16, 거리 = double접근법python으로 구현해봄0에서 시작해서 한바퀴 돔 (1, 2, ... 도 어짜피 한바퀴 돌면 같기때문에 해볼 필요 없음)dp방문한곳들에서
https://www.acmicpc.net/problem/5425문제요약a부터 b까지 각 숫자의 자리합 구하기(10^15)접근법일단 b까지의 자리합 - (a-1)까지의 자리합으로 접근함숫자를 나눠서 접근해봄0 ~ 99..99까지를 생각해보면${10^k}$가지의
문제 요약수식이 주어짐. 길이 19\+, -, x 만 주어지고 0 ~ 9 숫자만 주어짐적절히 괄호 추가했을 때 최대값접근법처음에는 완전탐색으로 접근해보려고 했음 : (없음, 여는, 닫는) ^ n 경우의수수식을 두개로 쪼개서 (l, r)을 잘 구했다 치고.. 로 접근함(
https://www.acmicpc.net/problem/4716 문제요약 팀마다 필요한 풍선이 있고, 두 지점에서 가지고 올 수 있음. 물론 두 지점에서 가지고 오는 비용이 각각 있음(하나 옮길때마다 드는 비용) 각지점마다 풍선이 있음. 두 지점 풍선의 합은
https://www.acmicpc.net/problem/17619 문제요약 개구리가 점프해서 이동 가능한지 판단 접근법 y값 무시하고 직선끼리 union-find python 코드를 잘못구현했는지
https://www.acmicpc.net/problem/2021문제 요약지하철 노선이 주어지고 최소 환승 회수를 구하기역 10만, 노선 10만, 노선 길이의 합 100만접근법그래프를 리모델링하는데 많이 헤맸다처음에는 노선과 노선을 연결하는 간선을 구하려고 했
https://www.acmicpc.net/problem/5463문제요약n \* m(50, 50) 격자수평/수직으로 두 조각으로 자를때마다 전체 판 비용 발생최소의 금액 구하기시간 제한 3초접근법시작끝 을 쪼갰을때 최소비용 dp로 생각하면50 50 50
https://www.acmicpc.net/problem/3430문제 요약호수(n), 날짜(m), 각각 10^6비가 오기도 하고(한 호수에만 옴), 안오기도 함호수가 차있을때 비가 오면 재앙비가 안올때 용은 호수의 물을 비울 수 있음재앙을 막을 수 있는지, 막
문제요약\*.txt 같은 형식을 만족하는 파일 이름 출력패턴길이, 파일 길이, 파일 갯수 : 100, 100, 100접근법패턴 위치 : 로 끝날때 되는지 안되는지 dp로 접근다만 패턴이 "\*" 일때 처리를 지저분하게 구현했음파일명 인덱스를 0 부터 가져가니까 여러모로
https://www.acmicpc.net/problem/18665문제요약처음에 0, 1, 2가 있음x^2 - y 연산으로 원소를 추가할 수 있음. 단 0 <= <= 10^18을 만족해야함43번의 단계 안에 N을 만들어야함 (0 <= N <
https://www.acmicpc.net/problem/23832문제요약1부터 N까지 정점이 있음(50000)두 정점이 서로소이면 간선을 그릴 수 있음얼마나 많은 간선이 필요한가접근법어떤 숫자와 소인수가 겹치지 않는 것의 개수를 찾아서 더하고 싶음5만 이하의
https://www.acmicpc.net/problem/24514 문제 요약 숫자를 k 진법으로 표현 X(n) : 1...n까지 k진법으로 표현해서 이어붙이기 Y : X(1), X(2), ..., X(10^100)을 이어붙임 Y에서 n번째 숫자를 찾기
https://www.acmicpc.net/problem/19134문제요약n이 주어짐(10^100)x는 포함, 2x+2는 포함되지 않는 어떤 집합의 최대 크기접근법
https://www.acmicpc.net/problem/24498문제요약n개의 숫자들이 있음(10^6개, 각각은 1 ~ 10^9)하나를 골라서 양쪽을 -1 시키고, 고른 숫자는 +1 시킴(첫번째, 끝은 고를 수 없고, 양쪽 모두 1이상이어야함)최대 높이 구하
https://www.acmicpc.net/problem/24500문제요약1부터 n까지 숫자가 있음(10^18)임의의 숫자를 골라서 xor 최대 만들기고르는 숫자가 적을수록, 사전순으로 빠를 수록접근법연산을 하면 n의 최고 비트 이하는 다 채울 수 있음.왜냐하
https://www.acmicpc.net/problem/24502문제요약숫자들이 있음(N = 10^6, 각각은 10^9)각각을 K의 배수로 만들어야함한번에 한칸씩 1을 이동 가능 : +1 -1최소 회수 구하기접근법어려웠음. 공식 해설이 나오면 봐야겠음접근하기
https://www.acmicpc.net/problem/23828문제요약주어진 수열에서 서로 다른 M개를 고름(N = 1000,숫자 = 10만)M개의 숫자는 서로 달라야함고른 숫자를 곱하고, 나올 수 있는 모든 경우에 대해서 모두 더한 값 구하기(물론 MOD
https://www.acmicpc.net/problem/23830문제요약N개의 수가 주어짐(10만, 10만)K 미만은 +qK + r 초과는 -p로 점수를 부여할때 합이 S 이상이 가능한지? 가장 작은 K는 얼마인지접근법모두에게 +q를 했는데도 S가 안되면 불
https://www.acmicpc.net/problem/23831문제요약4개의 방, 각각 만족도요양신청 횟수, 연속 휴게 안됨, 자습 횟수조건을 만족시키며 최대 만족도N = 100접근법dp요양횟수이전에휴게인지아닌지 \* 100일 : 2000000서로 간섭이
https://www.acmicpc.net/problem/11790문제 요약N이 주어짐 (10^14)1 ... N 까지의 LCM이 있을 것임1 ... N 까지의 소수가 있을 것임LCM을 소수들로 나눈 값 구하기, 물론 MOD(10^9+7)테스트케이스 5만개접근
https://www.acmicpc.net/problem/23833문제요약N개의 수가 주어짐(10만, 1~100)두 가지 명령이 주어짐A ~ B까지 서로 다른 그룹의 개수 : 2 2 3 3 3 2 2 1 => 4그룹A를 B로 바꿈명령의 개수는 10만개접근법A
https://www.acmicpc.net/problem/23834문제요약N개의 수가 두 번 주어짐(50만, 50만)각각의 순서마다 양/음으로 이동을 할 수 있고, Ai만큼 가능함최근 연속으로 M번 양으로 이동했으면, Bi만큼 이동하고 끝 (50만)아니면 계속
https://www.acmicpc.net/problem/24503문제요약K가 주어짐(10^15), A가 주어짐(10^15)A \* X! 이 K의 배수가 되는 가장 작은 X 구하기공식해설접근법팩토리얼 연산을 통해 K만 갖고 있는 것(소인수)을 채워야함K 만 갖
https://www.acmicpc.net/problem/24505문제요약길이 11짜리 증가 수열의 개수 구하기접근법LIS를 구하는 법을 생각해보면, 현재 위치보다 앞선 위치(왼쪽)에서 현재 값보다 작은 것들 중 가장 긴 것들에 연결하고, ......변형해보면
https://www.acmicpc.net/problem/17942문제요약공부할 알고리즘들이 주어지고, 각각에 필요한 공부양이 주어짐 (10만개, 10^8)연관성이 주어짐 : A를 공부하면 B의 공부양이 D만큼 줄어듬. 줄어드는 양은 합산 가능공부를 했다고 공
https://www.acmicpc.net/problem/24545문제 요약트리가 주어짐(N = 10만)가장 큰 Y-트리의 크기를 구하기문제에 특징은 주어짐Y 모양의 특징 : 끝점 3개, 가운데 가지 3개 모이는 곳, 나머지는 그냥 노드접근법가장 긴 3개의 가
https://www.acmicpc.net/problem/24548문제요약T, G, P, F의 개수가 3의 배수인 구간의 경우의 수접근법전에 K의 배수 이런 문제를 누적합으로 풀었었음누적합 mod 결과를 누적합에 저장하고 이전 위치에서 차가 0이 되는 값을 찾
https://www.acmicpc.net/problem/10126 문제 요약 앞/뒤에 숫자가 적혀진 카드가 주어짐(0 ~ 10^7, 20만) 관객이 카드 두 곳의 위치를 맞교환함(100만번) ==> 이때 상태가 누적됨! 관객이 뒤집을때마다 마술사가 적절히
https://www.acmicpc.net/problem/16496문제 요약N개의 수가 주어짐(1천개, 0 ~ 1000000000)숫자 순서를 적당히 섞어서 가장 큰 숫자 만들기유사/응용 문제 https://www.acmicpc.net/problem/
https://www.acmicpc.net/problem/24726문제요약제목부터..좌표평면에 삼각형이 주어지고, x축/y축으로 회전했을때 부피 구하기접근법직선의 방정식을 구하고 적분을 하기에는 너무 답답했음잘린 원뿔 3개를 구해서 서로 더하고 빼서 구하는 접
https://www.acmicpc.net/problem/24729문제요약숫자가 주어짐(5만개, 1 ~ 10만)계단수를 만들수 있는가? : 앞/뒤 숫자가 +1, -1 이면서 시작/끝도 +1, -1접근법시작/끝이 +1, -1이므로 연결이 됨 => 어떤 숫자에서
https://www.acmicpc.net/problem/24730문제요약수열을 GGG<>로 나타냄단일항초항, 공차초항, 계차수열 : 계차수열은 수열의 값들의 차이(=계차)들의 수열임 => 초항을 두고 계차수열을 수열로 생각하고 GGG를 표현해라 => 재
https://www.acmicpc.net/problem/24731문제요약A < B < C을 만족하며 A xor B = C인 쌍의 개수 구하기K자리 이진수, K = 10^18접근법K가 작으면 완전탐색으로 하면 되겠지만.A, B 특징이 있음특징 1A,
https://www.acmicpc.net/problem/24892문제 요약2차 함수가 주어지고(${f(x) = (x-a)(x-b)}$그래프 위에 n + 1 꼭지점으로 만들어진 볼록 다각형의 최대 넓이(x 구간이 n 등분) : ${p\\over q}$ 서로소인
https://www.acmicpc.net/problem/24893문제 요약1 ~ N 좌표에 적들이 있고, 1초에 한번씩 이동(N = 10만, 적 = 10^5), 성에는 1씩 데미지를 줌0 좌표에 성이 있고, E 데미지를 받으면 끝(E - 1까지는 버틸 수 있
https://www.acmicpc.net/problem/24888문제요약1번 -> N번 정점까지 최단 경로로만 이동함노트조각을 모두 주으면서 1번 -> N번 최단거리(N, M = 20만, 가중치 10^9) 최단거리 경로 출력접근법문제를 잘 이해해야함어떻게
https://www.acmicpc.net/problem/24889문제요약노드 N, 간선 N 그래프가 주어짐. 모두 연결(N 20만)s, e, w : s->e까지 간선/노드를 한번씩만 이용해서 이동. 차량이 이동할 가능성이 있는 간선은 모두 w 통행량이라고 계
https://www.acmicpc.net/problem/24913문제 요약투표 결과를 확인 중. 두 가지 쿼리를 해결특정 후보에게 표 + x, 정후가 당선 가능한지 쿼리최고 득표가 같으면 당선 아님접근법조건을 놓치거나, 구현이 이상하면 틀림이상적인 상황 즉,
https://www.acmicpc.net/problem/24915문제요약N개의 숫자(333,333, 숫자 33,333,333)Q개의 쿼리(333,333)a < b < c 위치일때 ${A_b - A_a - A_c}$의 최대값a의 위치를 c로 변경접근
https://www.acmicpc.net/problem/24916문제요약서로 다른 숫자, 증가하는 수열(N : 10만, 숫자 : -10^6 ~ 10^6)특정 위치에서 시작해서 점프. x를 점프했으면 다음번에는 2x 점프모든 점을 밟을 수 있는지/없는지테스트케
https://www.acmicpc.net/problem/24914 문제 요약 트리가 주어짐 (N = 20만) 간선마다 색이 있음(M = 20만) 같은색 간선이 같은 노드로 연결이 되면 같은 조각으로 침 쿼리가 주어짐 i 번 간선을 w로
https://www.acmicpc.net/problem/3769문제요약조건을 만족하는 실수 x의 최대값 구하기조건 : root어쩌고.....접근법root에 너무 현혹되면 어지러움전부 같은 값이면 최소값은 되겠지만 최대값은 아님 ${\\sqrt{a}}$가 많
https://www.acmicpc.net/problem/1294단어 N개로 문자열 W를 만듬 (N 20, W 1000)단어를 순서를 유지하며 쪼갤 수 있음.사전 순으로 가장 앞서는 것 구하기단어를 한 글자로 다 쪼개놓고 시작단어 각각을 리스트로 생각하고, 리
https://www.acmicpc.net/problem/4341입력을 적절히 파싱하여 연립 방정식의 해를 구하면 됨해가 존재하면 적절히 기약분수 형태로 처리하고 간편한 형태로 출력해가 존재하지 않으면 don't know를 출력해야함x 또는 y만 해를 갖는 경
https://www.acmicpc.net/problem/25045문제 요약N개, M개 숫자배열 A, B가 주어지고, Ai - Bi의 합을 최대로. 단 Ai >= Bi접근법쉽게 생각해보면 sum(A) - sum(B)를 하면 될 것 같지만 Ai >= Bi 를 위
https://www.acmicpc.net/problem/25048N개의 스위치, M개의 PC, 스위치는 포트(a)와 비용(b)이 있음외부 인터넷선은 하나M개의 PC가 모두 인터넷이 되어야함 && 남는 포트가 없어야함가능할 때 최소 비용N : 300, M :
https://www.acmicpc.net/problem/25049문제 요약설명을 잘 이해하면 부분합이 큰 두 개를 구하는 문제임전체 합 + 부분합1 + 부분합2 의 최대를 구하는 문제인데, 부분합 끼리 겹치면 안됨접근법부분합 구하는 것은 알고 있는 방식으로
https://www.acmicpc.net/problem/25050(S,E) 최단경로 사용되는 간선에 +1모든 (S,E)에 대해서 처리가장 높은 점수 간선들 출력최단경로가 존재한다면 한가지 경우만 존재노드 2000, 간선 5000모든 (S,E)의 최단경로를 구
https://www.acmicpc.net/problem/9270게임판에 말이 주어지고 상/하/좌/우 인접한 말이 있으면 건너 뛸 수 있음건너뛰면 발판이 된 말은 사라짐게임판은 무제한이고 말은 n\*n 영역에 주어질때 마지막 한개만 남길 수 있을까?https&
https://www.acmicpc.net/problem/18838LIS 중에서 사전순으로 K 번째를 찾기서로 다른 숫자(다행히)N : 10^5https://www.acmicpc.net/problem/17411 문제를 응용할 수 있음큰 흐름각 숫자로
https://www.acmicpc.net/problem/2511510% cashback을 받는데현금 지출을 최소화하자순서대로 사용해야함나에게는 어려웠음. 문제 분류 힌트를 참고 했음값을 정해놓고 되는지 안되는지 판단값이 정해져있다면 가능하면 현금을 쓰면서 c
https://www.acmicpc.net/problem/19956 문제요약 바이러스를 배양중임 제곱하거나, p(소수)로 나눌 수 있음(나누어떨어져야함) 가장 적은 수의 시퀀스로 n->m을 만들어야함 접근법 소인수 개수를 맞춰줘야하는데 증가는 제곱만 가능하고, 감소
https://www.acmicpc.net/problem/1829k, k + 1, k + 2, ... 숫자가 있음(10만개, k는 50만까지 가능)임의의 위치를 지정해서 동일한 값을 뺄 수 있음 => 이것을 1회로 봄가능한 적은 횟수로 모든 숫자를 0으로 만들
https://www.acmicpc.net/problem/7686"누적 평균"을 정의하고, k개 이하로 제거 가능할 때, 가장 높은 누적 평균값을 구하기누적평균은 (a, b)이루어진 순서쌍들이 있을때 a의 합은 분자, b의 합은 분모로 해서 나누는 것이렇게 나
https://www.acmicpc.net/problem/25188숫자들을 6개의 연속구간으로 나누고(구간이 비어도됨. 겹치는 것은 안됨)1, 3, 5 구간 숫자들의 합을 최대로x 부터 시작하는 두개 구간의 합의 최대값은 O(n)에 구함왼쪽끝부터 max, 오른
N, M 격자(1000, 1000), 시작, 끝격자마다 정확하게 a만큼 점프 할 수 있음. 밖으로 나가면 안됨1회에 한하여 상/하/좌/우 원하는 곳으로 점프할 수 있음최단점프 구하기도착지까지의 거리가 가장 짧은 곳으로 무제한 점프를 사용하면 됨 순방향/역방향 BFS역
https://www.acmicpc.net/problem/1279 문제요약 6면의 주사위, 각 면의 숫자가 다름 평균이 M이 안 넘도록 하는 경우의 수(1 ~ 1000000) 접근법 DP로 해결했는데 기억이 잘 안나서 단서만 적어봄 합 = M * 6 서로 다른 6개
https://www.acmicpc.net/problem/25190문제 요약너무 어려움공식 해설 : https://upload.acmicpc.net/323aa24e-dc6a-43c9-b539-62e49a1b5f97/
https://www.acmicpc.net/problem/25179배스킨라빈스 게임N을 부르면 짐, 가장 작은 숫자부터 1~M개 가능N, M 10^18웰노운이라고 하지만 나에게는 아님보통 DP로 접근했는데 N, M이 커서 당황자신의 턴에 주어진 숫자로 이길 수
https://www.acmicpc.net/problem/25181수열 A가 있고 적절히 섞어서 수열 B를 만들때Ai != Bi가 되도록 만들 수 있는지N = 5000, 숫자 = 10만숫자별로 그룹을 지어볼 수 있음 + 정렬을 할 수 있음가장 큰 그룹의 크기를
https://www.acmicpc.net/problem/25200흥미로웠던 문제1 ~ N 음료수가 있음(N 30만)M개의 차원이 있음(M 30만)각각의 차원에서 한 종류의 음료수 변환이 발생함 u -> vM개의 차원을 통과한 후 각각의 음료수는 어떻게 변환이
https://www.acmicpc.net/problem/25197확률, 조합관점을 바꾼다 => 한 쌍을 기준으로 바꿈임의의 i, j가 밥을 먹을 수 있는 확률 : ${1 \\over k}$(i, j)가 가능한 경우의 수 : ${k^2}$(i, j)가 같은 조
https://www.acmicpc.net/problem/25198트리가 주어짐S -> C -> H 로 이동경로 순서대로 두 지점에서 닭다리 구매 가능. 경우의 수 구하기경로에서 경우의 수를 바로 구하는 쉬운문제 아닌가 생각할 수 있는데, 주어진 예시를 보면
https://www.acmicpc.net/problem/25315선분들이 주어짐. 그들끼리 교차함. 어떤 세점도 한 직선에 있지 않음선분을 지워나갈때 비용이 발생 : 선분의 비용(w) \* (겹치는 점 + 1)선분을 지우면 없어지고, 계속 진행비용을 가장 작
https://www.acmicpc.net/problem/25323두 숫자 위치를 교환하여 비내림차순으로 정렬두 숫자의 곱이 제곱수여야 교환 가능언뜻 생각하기에 quick sort + 교환할때 제약을 적용하면 되겠다 생각할 수 있으나 {7, 7, 3, 7, 2
https://www.acmicpc.net/problem/25317n차 함수에서 어떤 x값에서 양/음/0인지 판단두 가지 쿼리를 처리 : 함수의 변화, x값 판단f()가 x축과 만나는 점은 알 수 있는데, 분수임. 10^18 값 범위를 갖는 분수x축에 만나는
https://www.acmicpc.net/problem/25320A먼저 시작하고, A와 B가 번갈아서 아래의 작업 수행BLOCK : 블록을 새롭게 놓음CHAIN : 앞선 블록 위에 블록을 놓는데, 블록 번호가 더 커야함2N개의 블록(2 \* 100000)BL
https://www.acmicpc.net/problem/25336길이가 10^5인 숫자 X가 주어짐X이하인 K 균형잡인 수를 구하기K 균형잡인 수 : 각 숫자별 등장 횟수 "최대 - 최소" <= K인 숫자숫자가 엄청 큼. 테스트 케이스도 있지만 일단 모
https://www.acmicpc.net/problem/25341인공 신경망을 구현해서 계산시키는대로만 하면 O(NMQ) 시간복잡도가 발생하는데 대략 80억수식을 잘 이해해보면상수값(B)들은 고정값임입력에 곱해지는 가중치들은 미리 입력에 따라 정리 가능함 :
https://www.acmicpc.net/problem/25713N, M 격자 (1,1) -> (N,M)으로 이동함. (1000, 1000)CCTV가 2000개 있음. 직사각형 모양오른쪽/아래로만 이동 가능CCTV 최소로 걸리게 이동(문제에서는 CCTV 제거
https://www.acmicpc.net/problem/25559문제 요약1 ~ N까지 원형으로 모여있음1번부터 패스패스 해서 한번만 패스 받도록패스는 1 ~ N 까지 가능접근법예전에 한 번 접했던 문제 같음1이면 1출력n이 있기 때문에 n이 중간에 끼면 패
https://www.acmicpc.net/problem/25566index tree를 3번 사용하는데 시간초과..map을 써서 좌표압축을 해서 그런가뭔데 이렇게 해맸을까좌표 압축(map안쓰고)r로 정렬 => r보다 작은 것들을 대상으로l 과 r 사이의 합 =
https://www.acmicpc.net/problem/3844D를 찾아야함완전제곱수N 이하의 서로다른 자연수의 곱N 은 1천만 이하완전제곱수 + 서로다른 자연수의 곱을 어떻게 엮을까N이하의 자연수는 소수의 곱으로 표현 가능N이하의 자연수에서 소수 p가 몇
https://www.acmicpc.net/problem/25619문제요약양방향 그래프기대값, 중복 방문 가능, 음수 가능1번 노드에서 T 시간 이하로 갈 수 있는 노드 구하기접근법기대값 계산을 위해 2를 곱했다 치고 계산함dijkstra를 이용해서 최단 거리
https://www.acmicpc.net/problem/24616소들의 좌표가 주어지고, 모두 연결할 수 있는 최소 비용 구하기x : 1000000, y : 10, n : 100000거리 : x^2 + y^2 거리
https://www.acmicpc.net/problem/25606i번째 날 받은 물의 양이 주어지고매일 M만큼 물이 증발할때두 가지 쿼리 처리i 번째 날에 있는 물의 양의 합i 번째 날에 증발하는 물의 양의 합날짜 기준으로 생각i 번째 날짜에 얼마큼의 물이
https://www.acmicpc.net/problem/25608길이 M인 N개의 수열이 주어짐(M = 10000, N = 10)수열을 통째로 순서를 바꿀수는 있으나, 수열 내부의 순서는 못바꿈최대 연속합 구하기10!로 배치하고 각각으로 연속합을 구하기에는
https://www.acmicpc.net/problem/25620슬라임이 주어짐(0~10^9, 20만개)약을 사용할 수 있음(x이하를 y배, 0~10^9, 20만개)약을 다 사용하고 슬라임을 오름차순 정력숫자가 아무리 커져도 10^18임. 무한히 커지지는 않
https://www.acmicpc.net/problem/25589400 \* 400 격자, 숫자격자안에 정사각형 : 숫자의 합 - 격자의 개수^2 격자안에 정사각형을 두 개, 안겹치게 할때 최대값 구하기대충 완전탐색으로 정사각형 두개를 구하려면 답이 안나옴하
https://www.acmicpc.net/problem/25402트리가 주어짐(N = 25만). 쿼리가 주어짐(Q = 10만)쿼리마다 노드가 주어지고(S), S에 속하는 정점만을 이용하여 이동이 가능한 순서쌍의 개수 구하기(쿼리로 주어진 모든 노드 개수의 합
https://www.acmicpc.net/problem/25586제한조건을 만족시키면서 주어진 트리의 순서를 지키며 트리를 재구성 할 수 있는지자식 노드 개수의 제한 M재구성했을 때 상-하 관계가 유지만 되면 됨사실 25596 문제에서 떠올렸던 아이디어임25
https://www.acmicpc.net/problem/25599N,N 정사각형 + 숫자가 주어짐 (N = 1000, 숫자 = 10^7)K,K 범위안의 숫자중 가장 큰 숫자 = 발도술모든 x,y에 대해서 발도술을 수행. 모든 합 >= R (R : 10^12)
https://www.acmicpc.net/problem/25542주어진 문자열과 동일한 길이를 가지면서최대 한글자만 차이가 나는 문자열 구하기길이 : 20, 개수 : 20어려웠음위치마다 경우의 수를 찾아야하나...완전탐색 아이디어를 떠올리기도 어려웠음 ->
https://www.acmicpc.net/problem/2545a,b,c가 주어지고 1회에 a,b,c 중 하나를 -1 시킴d회 수행했을때 남은 a x b x c 의 값을 최대로a,b,c,d : ${10^{18}}$a,b,c가 비슷해야 최대가 될 것 같음(웬지
https://www.acmicpc.net/problem/4096가까운 펠린드롬 찾기, 최대 9자리수자리수 개념이 있음. 가장 앞이 0일수도 있다는 이야기완전탐색이 되나... 싶었음. 최대 10^9번? (그런데 실제로는 절반만 봐도 되기 때문에 1만번 수행된다
https://www.acmicpc.net/problem/4335예제 입력이 거짓말인가? 거짓말이 아닌가?이분탐색을 따라하는 접근법은 구현이 복잡하기도 하고, 예외케이스 찾기도 힘듬어짜피 어떤 "값"을 대상으로 low, high, right on을 이야기할 것
https://www.acmicpc.net/problem/28139n개의 서로 다른 좌표가 주어짐n! 경우의 수.... 경로 이동 거리의 평균 구학n = 5000모든 경우의 수를 구하지는 못함특정 구간이 n! 경우의 수에서 몇 번 쓰일까?특정 구간을 묶어 놓고
https://www.acmicpc.net/problem/281401,000,000 크기 문자열이 주어짐. 대문자l, r 구간에서 R, R, B, B 아무거나 찾으면 됨순서만 맞으면 됨 (a < b < c < d)가장 근처에 있는 R, B를 찾
https://www.acmicpc.net/problem/3279 문제요약 앞으로의 환율을 알고 있을때 100$를 최대로 접근법 처음에는 가장 비율이 큰 구간을 찾는 식으로 접근해야했는데 어려웠음 아이디어가 안떠올라서 https://hsin.hr/2001/ 를 참고
https://www.acmicpc.net/problem/27461 ~ 1,000,000 숫자 50만개가 주어짐정확히 2개를 제거해서 어떤 원소가 이 원소를 제외한 다른 것들의 합이 되는 배열을 만들기2개를 제거하는 경우의 수 구하기배열에서 가장 큰 값이 이런
https://www.acmicpc.net/problem/30806집합들이 주어짐 : 원소(1 ~ 10^9), 집합 원소 개수의 합(10^6)모든 교집합 들이 있을 때 교집합 크기별 원소 개수들의 합교집합을 다 구하는 것은 현실적으로 불가능함어떤 원소가 어디에
https://www.acmicpc.net/problem/24516길이가 k이면 합이 k로 나누어지는 서로 다른 숫자로 구성된 길이 n 수열 구하기n < 5000, 숫자 : 1 ~ n모든 숫자가 1이면 k로 나누어질테고, 여기서 숫자들을 조정해보려고 했으
https://www.acmicpc.net/problem/175051 ~ N으로 이루어진 순열, 반전의 개수가 K인 순열 구하기N : 314159오름차순 : 반전의 개수 0N 이 가장 앞에 오는 경우 : 반전의 개수가 N - 1N - 1이 가장 앞에 오는 경
https://www.acmicpc.net/problem/30618순열, N(20만)연속 부분 수열들이 있을 것이고, 그들의 합이 있을 것임합이 최대가 되는 순열 구하기연속 부분 수열들을 구해보면, 각 위치별 쓰이는 빈도가 다름예를 들어 길이 5인 순열에서 각
https://www.acmicpc.net/problem/23005Z 보다 작거나 같은 수중 가장 큰, 연속하는 소수의 곱 찾기Z : 10^18TC : 100${10^9}$까지(더 클 수도 있겠고) 소수를 모두 구한다음에 찾으면 될 것 같음실제로 구해보면 50
https://www.acmicpc.net/problem/30807범위 형의 간선 크기를 갖는 그래프가 주어지고특정 비용을 갖는 MST를 만들 수 있는지 묻는 문제N : 20만직관적으로 모든 간선이 최소이면 MST의 비용도 최소, 모든 간선이 최대이면 MST의
https://www.acmicpc.net/problem/30893트리가 주어짐. 시작노드 S, 끝 노드 E번갈아가며 노드를 이동. 인접한 곳으로만 이동. 한 번 방문한 곳은 가면 안됨게임이 끝났을때 E를 방문했으면 선공이 승리. 아니면 패배이기려면 선공을 골
https://www.acmicpc.net/problem/30894조건에 맞게 유령의 집을 탈출4가지 방향에 따라 상태를 구하고 BFS실수했던 부분은 귀신이 바라보는 방향을 벽으로 바꾸는 처리를 하는데 이때 벽이나 귀신을 만날때까지 처리를 했음그런데 귀신이 바
https://www.acmicpc.net/problem/30826펠린드롬 수를 순서대로 늘어놓을 수 있음(첫자리가 0이면 안됨)k 번째 숫자를 찾는 문제(k번째 펠린드롬이 아님)문제 예시 참고보통의 k 번째 수 찾는 방법과 유사하게 접근하나씩 찾지 않고, 큰
https://www.acmicpc.net/problem/30827회의실을 사용할 수 있는 최대 개수 구하기회의 수 : 20만, 회의실개수 : 3회의 종료시간으로 정렬빨리 끝나는 회의가 유리함더 빨리 시작하는 회의를 선택하더라도, 회의실이 노는 시간은 줄겠지만
https://www.acmicpc.net/problem/30828숫자가 주어지고 쿼리가 주어짐(l, r) 구간에서 중복 없이 임의의 k 개를 골라 모두 xor한 값 + k 이 가장 큰 값을 구하면 됨N : 500, 숫자 : 0 ~ 511임의의 k개를 골라서,
https://www.acmicpc.net/problem/30831과목 N개가 주어짐권장 선후수 관계, 필수 선후수 관계가 있음후수과목 : 최대 1개, 필수 선수 과목 : 최대 1개문제에서 주어지는 조건에 따라 과목을 수강필수 과목을 수강하던지후수 과목을 수강
https://www.acmicpc.net/problem/30869N개 정류장(500개)버스 : 시작, 끝, 소요시간, 주기K 번 빨리가기 : 주기와 상관 없이 바로 출발가장 빨리 가는 시간은?주기때문에 헷갈렸는데, 빨리가기가 없다면 빠른경로 => dijkst
https://www.acmicpc.net/problem/30870주어진 그래프에서 시간마다 인접한 노드를 지워나감. 물론 최초에 지울 노드는 있고이렇게 지우다가 최초로 사이클이 생기지 존재하지 않는 시간 구하기노드, 간선 : 20만매번 지울때마다 사이클을 판
https://www.acmicpc.net/problem/30885조건에 따라 시간이 흘렀을 때 마지막 남는 미생물을 찾아라시뮬레이션이 가능할까?한번 흡수하면 -> 미생물이 한번 줄어듬마지막 하나가 남으려면? -> n-1 번 흡수해야함n-1 번 흡수 시뮬레이션
https://www.acmicpc.net/problem/30871이해하기 힘든 함수가 주어지고조건을 만족하는 x를 구하기주어진 함수가 난해하기 때문에 자세하게 이해하려고 하지 않는 것은 알겠음처음에 함수를 잘못 이해해서 잘못된 접근방법을 하였음해설을 참고했으
https://www.acmicpc.net/problem/30865수열이 주어지고 두 개의 쿼리 i 번째 수를 x로 변경x와 xor 했을때 i번째로 큰 값 출력N = 20만, 쿼리 = 20만, 숫자 : 2^31bit로 바꾸어서 트리에 저장 => trie 비슷하
https://www.acmicpc.net/problem/30867문자열이 주어짐 (20만)한번 실행에서 왼쪽에서부터 wh -> hw로 변경n 번 실행했을때 결과 구하기(20만)당연히 하나씩 다 해보지는 못할 것임h,w로 이루어지지 않은 문자열은 영향이 없음h
https://www.acmicpc.net/problem/30799빨/주/노/초/파/남/보 순서가 s개 슬롯에 있어야함. 나머지는 슬롯은 알아서 채우고경우의 수 구하기s개에서 7개를 고르고 나머지를 알아서 채우는 방식으로 하면 좋은데, 중복 제거가 힘듬매 칸을
https://www.acmicpc.net/problem/30798xor해서 x가 되는 서로다른 n개의 숫자 구하기0 <= x <= 2^30, 0 < 숫자 < 2^63, 4 <= n <= 10^6기본적인 아이디어1, 2, 3,
https://www.acmicpc.net/problem/31927N의 숫자가 주어짐(1 ~ 5000)두 개의 숫자를 골라서 한쪽은 +x, 한쪽은 -x를 할 수 있음(0 < x <= 1000000)N/2 번 이하로 연산했을때 내림 차순 정렬이 가능한
https://www.acmicpc.net/problem/31929승/패 정보가 주어짐(j번째 시행시 얻는/잃는 점수)패배할때 잃는 점수 조건이 있음 : a \* K + b에서 최대 b만큼 점수를 잃음쉽게 말해서 패배할때 점수의 K 나머지만큼 최대로 점수를 잃
https://www.acmicpc.net/problem/31931나루토, 사스케 각자가 체력/공격력/회복력서로 최선을 다했을때 경기 결과공격력 : 상대의 체력을 깎음회복력 : 내 체력을 높임나루토가 먼저 공격처음에 승패가 나는 경우나루토가 공격 -> 경기 끝
https://www.acmicpc.net/problem/31932N개의 빙하, M개의 얼음다리얼음다리는 길이가 d, 앞으로 t초후에 무너짐북극곰은 1번 빙하에서 시작, N번까지 이동1번 빙하에서 최대한 늦게 출발할 수 있는 시각(=먹을 수 있는 최대 연어)K
https://www.acmicpc.net/problem/31933마을과(N) 마을을 이어주는 강(M). (N,M 5000)연어 K개. (K 50만)연어는 크기가 있음. (1 ~ 1000000000)강은 l, r이 있고, l <= 연어크기 <= r이
https://www.acmicpc.net/problem/31883신호등 또는 육교를 이용해서 N개의 횡단보도를 건너서 가는 최소 시간 구하기신호등은 C분 동안 녹색, D분 동안 빨간색녹색 끝점에 걸쳤을때 처리해야하는 조건이 하나 있음길이 한 줄로 연결되어 있
https://www.acmicpc.net/problem/31886N by N 좌표, M 개의 점가로 또는 세로 한 줄에 K 이하의 점이 있으면 그 줄을 몽땅 지울 수 있음한번의 연산에서 가로(또는 세로) 줄들을 쭉 보면서 K 이하다? => 삭제K 이하가 아니
https://www.acmicpc.net/problem/318731,2,3,...,N(N=100만)N의 약수 KK개씩 그룹으로 묶었을때, 그룹의 합이 K로 나누어 떨어지지 않도록 구성할 수 있을까?숫자들을 K의 나머지로 표현하면 1,2,3,...K-1,0,1
https://www.acmicpc.net/problem/31858순열 P가 주어짐조건을 만족하는 (i,j) 쌍의 개수 찾기 (문제 수식 참고)최소값(제일 왼쪽, 제일 오른쪽) > 최대값(그 사이 값들, 0)모든 경우의 수를 찾기에는 N^2의 시간이 발생처음에
https://www.acmicpc.net/problem/31865원형 공간에 1부터 N까지 정해진 규칙에 의해서 추가1은 1번째 자리2부터는 특정숫자(p)에서 시계방향으로 특정번째 위치(x)에 추가N:30만일일이 찾으면 물론 시간 초과남은 공간으로 나머지 연
https://www.acmicpc.net/problem/31814주어진 함수를 이해하고, 값을 출력함수가 잘 와닿지는 않음가능한 모든 경우의 ${i, j, k}$ 에 대해서 ${f(i,j,k)}$의 합을 출력${si+t <= sj+t}$ 이면 1인데,
https://www.acmicpc.net/problem/31839N개의 노드를 갖는 트리가 주어짐 (N : 20만)각각의 노드는 가중치 ${W_i}$를 갖고 있음특정 노드를 기준으로 정할때, sum(각 노드까지의 최단 거리 x ${W_i}$) 을 최대로 하는
https://www.acmicpc.net/problem/31840N개의 노드 M 개의 간선(30만)1 부터 N까지 이동할때 간선들의 "OR" 최소값 구하기간선은 2^60 미만처음에는 XOR인줄 알았는데 OR 이었음59번째 비트(2^59)를 사용하지 않고 1
https://www.acmicpc.net/problem/23569그래프가 주어짐(n=1000)두 개의 그룹으로 나눌 수 있는가? 그룹내의 노드는 모두 "직접" 연결되어 있어야함크기의 차이를 최소로 나누기직접 연결된 노드들끼리 묶어서 구성을 해보려고 했는데 쉽
https://www.acmicpc.net/problem/31790순열 A가 있고, 0 ~ i까지 연속 수열의 원소들을 p로 나누면 나머지가 0 ~ p-1이 나올 것임가장 많이 나온 빈도수를 구할 수 있을 것임 => ${b_i}$p와 ${b_i}$ 가 주어지면
https://www.acmicpc.net/problem/31795그래프가 주어짐(N 10^5, M 10^5)노드마다 가중치가 있음(10^9)활성화된 간선이 있음(u,v)VIP : 활성화된 간선을 이용해서 정점의 가중치가 증가하는 방향으로 이루어진 경로쿼리가
책이 있음. 가격은 1000~1000000원한 페이지에 가격이 두 배 이상 차이나는 책을 진열할 수 없음쿼리가 주어짐책을 추가, 책을 삭제책을 진열하기 위한 최소 페이지 출력최소 가격을 구하고 -> 2배 가격을 구하고(더 커도 됨) -> 그 다음 2배 가격을 구하고..
https://www.acmicpc.net/problem/31793깊이 N인 이진 포화 트리가 주어짐(N=60)루트노드 1에서 공을 굴려서자식 노드의 루트 노드가 비어있는 쪽으로 공을 굴림둘다 비어있으면 공이 적은 서브트리로 공을 굴림그래도 안되면 루트 노드가
https://www.acmicpc.net/problem/31778문자열 S가 주어짐. C와 P로만 이루어졌고 길이 20만두 위치를 바꿀 수 있음. 최대 K번(20만)PPC 부분문자열의 최대 개수 구하기PPPPPP...CCCC 이런 형식은 PPC 부분 문자열이
https://www.acmicpc.net/problem/317822000\*2000 지도가 주어짐. 정상/저체온증낮이되면 저체온증->정상 가능. 상하좌우 2명 이상 정상이면 가능. 충분히 반복 가능밤이 되면 최대 K 명 정상->저체온증충분한 시간이 지나도 낮
https://www.acmicpc.net/problem/317831 ~ N까지 높이가 있고, 내려가는 계단이 있음(N 30만, 높이 10^9, 단조감소)계단마다 보물상자의 점수, 내구도가 있음보물을 얻으려면 현재 보물이 놓여진 계단의 높이 + 내구도 이상인
https://www.acmicpc.net/problem/31741구간 S-E가 주어짐(1 ~ 10^9)선분 N개가 주어짐(N=10^6)선분을 최대 3개 이용해서 구간을 덮을 때 최소 오차 구하기오차 = 사용하는 선분간 겹치는 길이점이 같아도 겹치는 것, 덮는
https://www.acmicpc.net/problem/31676두 종류 증언이 있음 : S중에 범인이 있다. S중에 범인이 없다N 명중 한 명이 범인이라고 하면범인이 증언한 것은 거짓. 나머지는 참그리고 모든 증언에 모순이 있으면 안됨모순이 아니다 = 모든
정점, 간선, 가중치가 있는 그래프가 주어짐시작은 1, 출구는 x개가 주어짐출구가 열리는 시간이 규칙적이고 주기적임(문제에서 주어짐)가장 빨리 탈출하는 시간 구하기문제가 어려운 건 아닌데, 출구 시간 처리하는 부분이 좀 까다로움editorial 참고일단 dijkstra
https://www.acmicpc.net/problem/32656트리가 주어짐(N=20만)LCA(a,b) = x가 주어짐트리의 루트로 가능한 정점 후보의 개수 구하기LCA(a,b) = x 부분만 가지고 트리를 구성했을때, 나머지 루트가 가능한 것을 이어 붙이
https://www.acmicpc.net/problem/326321 ~ N 노드(N 10^6)gcd(x,y)일때만 간선이 있음dist(x,y) = 두 정점 최단 경로 = 최단 간선의 개수어떤 K에 대해서 dist(x,K) = gcd(x,K) 인 x의 개수 구
https://www.acmicpc.net/problem/13294n!이 주어졌을때 n을 구하자자리수가 10^6직접 모두 곱해보기에는 숫자도 크고 계산도 안됨 => 효율적으로 곱한다0이 나타난다 => 2와 5와 곱해졌다 => 5가 몇번 나타났다? 를 알 수 있
길이가 N인 수열이 주어짐(N : 10^6, 숫자 10^9)길이가 1 이상인 부분 수열에서 최대값 x 최소값부분 수열들의 최대값 x 최소값 들의 XOR다 해볼수는 없음 : 부분수열의 경우의 수 = 2^N최대값, 최소값을 정해놓는다면?10(최대값), ........, 2
https://www.acmicpc.net/problem/33489무한한 길이의 수열 A를 정의함 : x,y로 시작하고 (앞항 - 뒤항) 을 계속 반복수열에서 최초로 0이하가 등장할때까지의 길이를 최대로 하는 x,y를 선택1<=x<=X, 1<=
https://www.acmicpc.net/problem/30160수열이 주어짐(N:10만, -1000<=숫자<=1000)1, (4,1), (9,4,1), (16,9,4,1), ... 을 곱하고 더한 숫자들을 각각 출력${1\*a_1}$${4a_1+
https://www.acmicpc.net/problem/33543(A,B) 쌍이 N개 있음 (N : 25만, AB : 100만)query가 주어짐. A를 일괄 증가시키거나, B를 일괄 증가(Q : 25만)query가 주어질때마다 max(A,B)의 합을 구하는
https://www.acmicpc.net/problem/33279특식 N이 주어짐(10만)k가 주어짐(N개, i번째 k는 1 ~ i 사이의 정수)특식을 몇개의 생활관이 가져가는지 기대값을 구하는데p개가 남았으면 ${1에서 k_p}$ 사이의 랜덤값만큼 가져감(
https://www.acmicpc.net/problem/33151N x N 격자판에 두칸 동전개수의 차이는 정확히 1이 되도록 총 K개의 동전 배치N : 1000, K : 10^9처음 문제를 접하면 난감하다. 단서를 하나씩 찾는다.인접한 칸과의 차이는 +1
https://www.acmicpc.net/problem/33156수열의 구성이 서로 같으면 이븐함주어진 수열의 부분 수열중에 왼쪽반, 오른쪽반이 서로 이븐한 부분 수열의 최대 길이 구하기N=5000, 원소 10^9N^2개의 부분수열을 구하고, 각각이 조건을