
단순하게 X와 Y를 1씩 증가했을 때, 시간초과가 발생한다.이분탐색을 이용해 시간복잡도를 낮춘다.

N: 10^1613번을 밟아 100을 갔다.1 2 3 4 5 6 7 8 9 10 11 12 13+등차수열 공식: n(n+1) / 2

n: 10억answer: 100조배열의 길이: 10만times 배열을 오름차순 정렬한다.심사가 가장 오래걸리는 시간을 생각한다.결국은 걸리는 시간의 최솟값을 찾기만 하면 된다.즉, 적절한 시간을 던져주고 그 시간에 각 심사관들을 나눗셈하면, 그 나눗셈들의 합이 n 이상

dfs 구현 기본문제count를 따로 구해야 함.

InputN (100,000), M (200,000), R (100,000)Outputi행: 정점 i의 방문순서 출력 (불가능한 방문지점은 0)간선 정보를 리스트에 저장한다. (양방향)간선 정보를 오름차순 정렬한다.각 간선에 대한 순위를 저장할 배열을 만든다. (정점은

1s, 256MB나무 M미터 필요절단기에 높이 H를 지정여러 높이의 나무를 최대한 높게 자를 수 있는 높이 H를 구해야 한다.N (나무의 수): 1,000,000 (100만), M (필요한 나무의 길이): 2,000,000,000 (20억)나무의 높이들: 1,000,0
A -> AA -> AAA -> AAAA -> AAAAA -> AAAAE -> AAAEE -> ... -> UUUUU5^5 가지"AAAAE"6왼쪽 알파벳이 항상 우선이다!5중 for 문을 돌린다.각 for문 마다 단어를 추가하면된다.for문도 괜찮지만 dfs도 괜찮을거

촌수를 계산n (1~100): 사람의 수a b: 촌수계산이 필요한 두 사람의 번호m(??): 부모 관계의 개수x y: x가 부모, y가 자식a b 의 촌수관계 (관계가 없으면 -1)양향 노드를 생성a에서 b 로 가는 노드를 찾아 카운트를 세어 출력.


N (1~100,000): 정점의 개수, M (1~100,000) 간선의 개수M줄. u (1~N), v (1~N): u != v, u -> vS (1~N): 팬클럽곰곰이 정점의 개수S개. s (1~N): 팬클럽곰곰이 정점의 번호Yes or yes2중 리스트에 간선정보를

M N H (1~100): 가로, 세로, 높이~N. ~M. ~H. 토마토 위치, 1: 익은토마토, 0: 안익은 퇌토, -1: 빈칸이미 모두 익었으면 0or 토마토가 익기까지 걸리는 최소시간or 모두 익는게 불가능하면 -1BFS처음 큐에 익은 토마토 위치를 다 넣는다.B

Input N Output 행동 횟수 Solve 1회 생성 하고 그 뒤로는 계속 복제를 해서 N마리가 되도록 한다. 근데? 사실 N마리가 되는 가장 빠른 방법은? N/2 상태에서 복제 마법을 사용하는 경우이다. 위 사실을 바탕으로 역추론을 하면 된다. N 에서 계속

N (1~100,000): 거스름돈2원과 5원만 사용, 동전의 개수가 최소, n에서 2와 5원만 가지고 거스름돈을 줘야한다.최소화 하기 위해서는 5원을 최대한 많이 사용해야 한다.1\. 일단 n에서 5로 나누고 몫을 count 에 더한다.2\. 나머지를 2로 나눌 수

T: 테스트케이스N (1~1000): 카드의 개수카드 알파벳 순서대로~T. 만들 수 있는 문자열 중 사전 순으로 가장 빠른 문자열 출력항상 카드는 양쪽 끝으로만 갈 수 있다.결론: 왼쪽의 문자열이 가장 낮은 문자열이면 된다.

N (1~100): 레벨의 수~N. (1~20,000):점수최소 감소 횟수N개의 레벨을 클리허해서 점수를 얻는다. 레벨이 오를 때마다 주는 점수는 더 커야 한다.이 조건이 만족되도록 할려면 일부 점수를 낮춰야 하는데 한번에 1씩 내릴 수 있다고 한다면, 최소 몇번을 내

N (10^9): daldidalgo 의 횟수완료까지 최소 시간(초)daldidalgo 를 N 번 반복 후 daldidan 으로 끝내야함작업의 종류는 두가지: 알파벳 입력, 드래그 후 복붙1초에 1작업 가능몇초만에 가능한가N: 1...daldidalgodaldidalg

N (1~10,000): 센서의 개수K (1~1,000): 집중국의 개수센서의 좌표위치 (정수) N개K개 집중국 수신가능영역의 최소 길이합일직선에 N개의 센서가 있다. 집중국을 K개 세워야 함. 모든 센서는 반드시 집중국의 수신 가능 범위 안에 들어야 함그 수신 가능

N(1~100,000): 강의 개수~N. 강의번호(1~N), 시작시간(0~10^9), 종료시간(0~10^9)강의실 최소개수일단 생각나는 얘기를 해보자강의가 최대 10만개다.. 그러면 필요한 강의실 수는 최대 10만개다.10만개의 강의가 10만개의 강이실을 돌면서 빈자리

1번은 5개로 싸이클2번도 8개로 싸이클3번은 10개로 싸이클각자 10000개의 문제에 대한 배열을 만들면 된다.

brown (8~5,000), yellow (1~2,000,000)가로길이, 세로길이 (가로 >= 세로)yellow가 12개면 12x1, 6x2, 4x3모양을 잘 보면 규칙이 있다.(brown 개수) = (yellow 세로)x2 + (yellow 가로)x2 + 4위 식

k (1~5,000): 현재 피로도, dungeons (1~8) \* 2 최소필요(1~1,000), 소모(1~1,000) 최소 >= 소모최대 던전 수최대 8개의 던전을 순서대로 방문하는 경우의 수는? 8765432 = 40320 완탐가능그냥 dfs 돌면 될듯1\. 최소

숫자 7개소수의 개수만들 수 있는 조합을 모두 만들어서 Set에 저장소수체크 방법은 다양하지만, 여러 수를 체크해야 하기 때문에 에스토스테네스의 체를 이용해 미리 소수를 저장

주사위의 개수(1~10,000)~개수. A~F 숫자(1~6)숫자의 합 출력

N(1~1,000): 돌 개수SK or CY (마지막 돌을 가져간 사람)1개 또는 3개만 가져갈 수 있다. == 홀수개만 가져간다.둘다 한번씩 가져가면 결국 홀수+홀수=짝수 개만큼 줄어든다.무조건 턴이 돌면 마지막엔 항상 홀수개가 남는다.그렇다는건 홀수개의 돌이 있다면

Input N(1~1,000): 수열의 크기 ~N. 수열정보 Output 부분 수열의 길이 Solve DP 문제 수열의 값을 한개씩 받으면서 길이를 배열에 저장한다. 지나온 수열의 모든 값을 확인해서 자기보다 높은 값은 길이로 저장하면 된다. (길이 저장할 때 모든

N(1~1,000): 수열의 크기~N. 수열 정보부분 수열의 합DP로 수열의 합을 저장한다

T: 테스트케이스~T. N(1~100)P(N)일단 규칙을 살펴보자a b c d e1 1 1 2 2 3 4 5 7 9 12수학은 잘 모르지만, 잘 보면 d 부터 규칙이 생긴다.a+b=d 해당 규칙이 나오는데, index로 표현하면 seq0 + seq1 = seq3이다.

N(2~200): 아이들의 수~N. 번호이동해야하는 최소 인원DP, LIS
F: 총 층수, S: 현재 층, G: 목적지, U: 위로 U층, D: 아래로 D층 (1~1,000,000)S -> G 가 가능한, 최소 이동 횟수 / 불가능하면 "use the stairs" 출력생각해보면, 한 번 방문한 층수는 다시 갈 필요가 없다는 것을 알 수 있다