
백준 2170 문제위와 같이 코드를 짰더니 시간초과가 떴다.다른 사람들 코드를 들여다봐도 나랑 특별히 차이가 있는 것 같지는 않았다.일단 입력을 받기 위해 O(N), 정렬하는 데 O(NlogN), 그리고 최적해를 찾는 데에 O(N) ... 결국 O(N+NlogN)으로

백준 5419번우선,어떤 섬 (x1,y1)에 대해서 어떤 다른 섬 (x2,y2)가 남동쪽에 있다는 것은x1 <= x2 이며 (동쪽)y1 >= y2 임을 의미한다.일단 모든 섬들을 리스트에 저장한 후에 x좌표의 오름차순으로, 같은 x좌표에 대해서는 y좌표의 내림차순

2531번 문제슬라이딩 윈도우를 사용하는 문제이다.int\[d+1] sushi : 벨트 위에 올려진 초밥들int\[N] selected : 각 초밥 종류별로 선택된 수쿠폰으로 주어지는 초밥은 이미 먹었다고 가정한다.벨트의 0번째 위치부터 시작해서, 연속해서 먹는 k만큼

2075번 문제 문제 풀이 투포인터를 이용하여 쉽게 풀 수 있다. 포인터 s(start), e(end)를 따라가면서 총합이 M이 되는 경우의 수를 카운트 하면 된다. int[] arr : 수열 int cnt : M이 되는 경우의 수 int tmp : 현재 합 >

2352번 문제전형적인 LIS 문제.어떤 포트 i를 선택한다고 가정했을 때, 연결선이 서로 꼬이지 않기 위해서는 \- i보다 작은 인덱스 j에 대해 선택포트j < 선택포트i 여야 함 \- i보다 큰 인덱스 j에 대해 선택포트j > 선택포트i 여야 함.즉, 그

2565번 문제LIS를 한 번 공부하고 나면 쉽게 풀 수 있는 문제 같다.바로 이전에 풀었던 반도체 설계와도 아주 유사하다.다른 점이 있다면, 입력이 다르게 들어온다는 것이다.A전봇대의 위치 번호가 큰 순대로 B전봇대에 연결되는 위치를 정렬한 뒤, LIS를 찾아야 한다

1613번 문제모든 사건 쌍 간의 관계를 알아야 하므로 플로이드-워셜 알고리즘을 사용한다.사실 이 문제는 이전에 풀었던 저울문제 랑 매우 유사해서 빠르게 풀어낼 수 있었다.어떤 사건 a, b, c가 있고, 이 중 둘 간의 관계만 알려져 있다고 가정해보자. 예를 들어,

7570번 문제이 문제를 풀기 위한 핵심은, LIS를 구하되, LIS의 원소가 연속하여야 한다는 것이다.나는 15분 정도 문제를 들여다보다가 처음 보는 유형이라 시간이 엄청 많이 걸릴 것을 직감하고 풀이를 찾아봤다ㅎ위 문제에서 주어지는 5 2 4 1 3 의 풀이의 경우

4198번 문제 문제 풀이 첫 번째 풀이 바로 생각나는 대로 적어본 풀이는 다음과 같다. if (리스트 길이<1) 라면 리스트에 단순 추가 새로운 원소 x가 들어갈 위치 알아내기 by. 이진탐색 만일 그 위치가 1이거나 리스트길이-1이라면 (맨 앞이나, 맨 뒤

어쩌다보니 LIS만 파는 사람 ..이 문제도 그냥 LIS 길이 구하면 된다.근데 입출력 때문에 진짜 개빡침일단 덕분에 BufferedReader에서 EOF를 확인하는 방법을 알게 되었다 ^\_\_^1\. 제출 전에 VSCODE 상에서 입력 값을 넣어 출력이 제대로 잘

11728번 문제익숙한 문제라서 크게 고민하지 않고 코드를 짰다.투포인터를 이용하여 두 배열을 계속해서 대소를 비교해나가며 새로운 배열에 저장하였다.그런데 결과는 ..시간초과 ?..시간복잡도가 O(n+m)밖에 안 나오는 코드인데 어떻게 시간초과가 나올 수 있지...?입

1644번 문제처음 문제를 읽었을 땐 '이걸 어케 구해 ..' 싶었는데,내가 정리해놓은 에라토스테네스의 체 글을 다시 읽어보고 나니 로직이 쉽게 생각났다.n보다 작은 소수들을 찾아 수열을 구성한다. (오름차순)투포인터로 합이 n이 되는 부분수열을 구한다.getPrim

2839번 문제 문제 풀이

9663번 문제 문제 문제를 보고 당황했다. 저기 .. 체스를 모르는 사람은 못 푸는 문제인가요? 🥲 체스룰부터 끄적끄적 검색해보았다 ... 문제를 풀기 위해 알아야 하는 룰은 아래와 같다. > 퀸은 상하좌우, 대각선으로 칸수에 관계없이 움직일 수 있다. 즉,

19939번 문제각 바구니에는 1개 이상의 공이 들어가 있어야 하며, 각 바구니에 담긴 공의 개수는 모두 달라야 한다.→ 등차수열의 합 이용이 문제의 키 포인트는 등차수열의 합을 생각해내는 것인 것 같다.N개의 공을 K개의 바구니에 빠짐없이, 그 수가 모두 다르게 넣으

2580번 문제후하 ^^.. 풀고나니 쾌감이 장난 아닌 문제백트래킹을 이용해서 풀었다.모든 자리를 순회하며 비어있는 자리 a를 찾는다.a 자리에 들어갈 수 있는 수를 골라낸다.2-1. 같은 행과 같은 열을 체크하여 이미 존재하는 수 체크2-2. 같은 정사각형 범위를 체

15686번 문제처음엔 풀이방법을 다음과 같이 짰다.각 집에 대해 가장 가까운 치킨 집에 치킨 거리를 저장한다.이후, 치킨 집에 저장된 치킨 거리의 합이 최소가 되도록 M개의 치킨 집을 고른다.하지만 위의 방법대로 풀이하면 답이 나오지 않는다.M개의 치킨 집을 선택하고

7569번 문제 풀어본 적이 있는 것만 같은 토마토 문제 .. 분명히 풀어본 적 있는 것 같은데 문제를 읽어보니 3차원 배열을 사용해야 하는 문제였다. 이전에 푼 건 2차원 배열이었던듯 ..?? 🧐하루마다 익을 수 있는 토마토를 체크하고, 그 다음날로 넘어가야 한

14502번 문제벽을 세울 수 있는 모든 경우의 수를 찾는다.경우의 수에 대해 모든 (2)에 대해서 바이러스를 퍼트리고, 퍼진 구역의 수를 카운팅한다.바이러스가 퍼진 구역의 수가 가장 적은 값을 정답에 이용한다.우선, 감염되지 않은 구역 중 3곳을 골라서 순차적으로 순

10844번 문제길이가 N인 계단 수의 개수를 출력하면 되는 문제이다.DP를 사용해 i(1<=i<=9)로 시작하는 길이가 N인 계단수의 개수를 구한다.1,2,3,...9로 시작하는 길이가 N인 계단수의 개수를 모두 합하여 출력한다.memoi에는 i로 시작하는

11000번 문제강의를 종료 시간이 더 빠른 순으로 정렬한다. (정렬된 강의를 뒤쪽으로만 순회할 때 현재 강의보다 먼저 종료되는 강의가 없도록 하기 위함.)정렬된 강의를 순회한다. 이 때 시작 시간이 현재 강의의 종료 시간과 같거나 이후인 것을 찾으면 삭제하고, 종료

1219번 문제이 문제의 포인트는 다음과 같다.음수 사이클이 아닌 양수 사이클이 있는가를 확인하여야 한다.양수 사이클로 인해 도착 노드가 영향을 받는지를 확인하여야 한다. 영향을 받지 않는다면 양수 사이클 여부와 상관없이 답을 출력하여야 한다.그동안 풀었던 벨만-포드

1205번 문제문제 자체는 단순하지만 같은 점수가 있을 때, 점수의 등수 중 가장 작은 등수가 된다는 문제의 조건을 잘 구현해야 한다.remainingCnt를 통해 체크한다.이 말은 만일 같은 점수가 3개 (ex. a a a) 있을 때, 새로운 점수가 가장 뒤로 추가된

2869번 문제얼핏 봤을 때 단순 구현 문제인가? 싶었다그치만 시간 제한이 0.25초, 입력의 최대값이 상당히 큰 것을 보고 규칙이 있지 않을까 싶어서 규칙을 찾아보았다.나중에 '내가 왜 이렇게 풀었더라?' 할 것 같아서 남겨둔다 ㅎ