일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 알고리즘
- Dijkstra
- dp
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 자바 #java
- java #자바 #생활코딩
- 백준 #알고리즘 #파이썬 #코딩테스트
- 프로그래머스
- css #웹 #생활코딩
- 파이썬 #백준 #알고리즘 #코딩테스트
- java #자바 #나동빈
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 백트랙킹
- java #자바
- PYTHON
- react #리액트 #동빈나
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 백준
- css #생활코딩 #웹
- 재귀
- 투포인터
- BFS
- 다이나믹프로그래밍
- react #리액트 #동빈나 #나동빈 #유튜브강의
- java #자바 #동빈나
- DFS
- 백준 #파이썬 #알고리즘 #코딩테스트
- 파이썬
- 코딩테스트
- 다익스트라
- Today
- Total
목록
728x90
투포인터
728x90
(13)
커리까지
문제 상근이와 선영이는 동시에 가지고 있는 CD를 팔려고 한다. CD를 몇 개나 팔 수 있을까? 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄부터 N개 줄에는 상근이가 가지고 있는 CD의 번호가 오름차순으로 주어진다. 다음 M개 줄에는 선영이가 가지고 있는 CD의 번호가 오름차순으로 주어진다. CD의 번호는 십억을 넘지 않는 양의 정수이다. 입력의 마지막 줄에는 0 0이 주어진다. 상근이와 선영이가 같은 CD를 여러장 가지고 있는 경우는 없다. 출력 두 사람이 동시에 가지고 있는 CD의 개수를 출력한다. 예제 입력 1 3 3 1 2 3 1 2 ..
문제 싫은데요 햄스터는 콩쥐를 위해서 깨진 독을 자기 몸으로 막으려고 한다. 햄스터는 유체라 자기 몸을 그림처럼 늘릴 수 있다. 또, 햄스터는 유체라 자기 몸을 아래 그림처럼 늘릴 수도 있다. 하지만 햄스터의 부피는 M$M$으로 정해져 있기 때문에, 늘릴 수 있는 크기에는 한계가 있다. 독에 왼쪽부터 N$N$개의 구멍이 일렬로 뚫려 있고, i$i$번째 구멍의 크기 Ai$A_i$가 주어진다. 햄스터는 구멍을 막기 위해 정확히 그 크기만큼의 부피를 소모해야 한다. 싫은데요 햄스터는 콩쥐에게 최대한 도움이 되길 원하기 때문에 자기 부피를 가능한 한 많이 활용하길 원한다. 어떻게 막으면 햄스터가 원하는 방식으로 독을 막는지 구해서 알려주자. 아무리 햄스터가 유체라고 하지만 몸을 둘로 나눌 수는 없기 때문에 막는..
문제 올바른 배열이란 어떤 배열 속에 있는 원소 중 5개가 연속적인 것을 말한다. (연속적인 것이란 5개의 수를 정렬했을 때, 인접한 수의 차이가 1인 것을 말한다.) 예를 들어 배열 {6, 1, 9, 5, 7, 15, 8}은 올바른 배열이다. 왜냐하면 이 배열 속의 원소인 5, 6, 7, 8, 9가 연속이기 때문이다. 배열이 주어지면, 이 배열이 올바른 배열이 되게 하기 위해서 추가되어야 할 원소의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이다. 배열에 중복되는 수는 없다. 출력 첫째 줄에 입력..
문제 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다. N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. 입력 첫 줄에 정수 N이 주어진다. 출력 입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오 예제 입력 1 15예제 출력 1 4제출 답안 n을 2로 나눈 값에 1을 더해 기준을 설정한다. 연속된..
문제 주몽은 철기군을 양성하기 위한 프로젝트에 나섰다. 그래서 야철대장을 통해 철기군이 입을 갑옷을 만들게 하였다. 야철대장은 주몽의 명에 따르기 위하여 연구에 착수하던 중 아래와 같은 사실을 발견하게 되었다. 갑옷을 만드는 재료들은 각각 고유한 번호를 가지고 있다. 갑옷은 두 개의 재료로 만드는데 두 재료의 고유한 번호를 합쳐서 M(1 ≤ M ≤ 10,000,000)이 되면 갑옷이 만들어 지게 된다. 야철대장은 자신이 만들고 있는 재료를 가지고 갑옷을 몇 개나 만들 수 있는지 궁금해졌다. 이러한 궁금증을 풀어 주기 위하여 N(1 ≤ N ≤ 15,000) 개의 재료와 M이 주어졌을 때 몇 개의 갑옷을 만들 수 있는지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,0..
문제 n개의 자연수로 이루어진 수열이 주어질 때, 특정 구간 i,j의 합이 k보다 큰 모든 쌍 i,j의 개수를 출력하시오. 입력 첫째 줄에는 숫자들의 개수 n이 주어진다(1≤n≤100,000) 다음 줄에는 숫자 n개가 주어진다. 숫자들은 100,000보다 크지 않은 자연수임이 보장된다. 그 다음 줄에는 숫자 k가 주어진다. (1≤k≤1,000,000,000) 출력 특정 구간 [i,j]의 합이 k보다 큰 모든 쌍 i,j의 개수를 출력하시오. 예제 입력 1 5 1 2 3 2 1 7예제 출력 1 3예제 입력 2 5 1 1 1 1 1 2예제 출력 2 6제출 답안 조합과 같이 모든 경우를 구해서 sum하면 시간 초과가 발생한다. https://velog.io/@lse2625/%EB%B0%B1%EC%A4%80-14..
문제 더운 여름날 동물원의 백곰 앨버트는 너무 더워서 꼼짝도 하기 싫다. 다행히도 사육사들이 앨버트의 더위를 식히기 위해 얼음이 담긴 양동이들을 가져다 주> ### 문제 더운 여름날 동물원의 백곰 앨버트는 너무 더워서 꼼짝도 하기 싫다. 다행히도 사육사들이 앨버트의 더위를 식히기 위해 얼음이 담긴 양동이들을 가져다 주었다. 앨버트가 가장 적은 거리만 움직이고도 최대한 많은 얼음으로 더위를 식힐 수 있도록 도와주자. 우리 안은 1차원 배열로 생각하며, 총 N(1 ≤ N ≤ 100000)개의 얼음 양동이들이 xi(0 ≤ xi ≤ 1,000,000)좌표마다 놓여 있고 각 양동이 안에는 gi(1 ≤ gi ≤ 10,000)씩의 얼음이 들어 있다. 일단 앨버트가 자리를 잡으면 그로부터 좌우로 K(1 ≤ K ≤ 2,..
문제 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1. 두 생명체 A와 B의 크기가 주어졌을 때, A의 크기가 B보다 큰 쌍이 몇 개나 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 A의 수 N과 B의 수 M이 주어진다. 둘째 줄에는 A의 크기가 모두 주어지며, 셋째 줄에는 B의 크기가 모두 주어진다. 크기는 양의 정수이다. (1 ≤ N, M ≤ 20..
문제 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 4 2 1 1 1 1예제 출력 1 3예제 입력 2 10 5 1 2 3 4 2 5 3 1 1 2예제 출력 2 3제출 답안 ''' 1. 아이디어 - 오른쪽을 1개씩 증가..
문제 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 크기를 구하여라. 입력 첫 줄에 N과 K가 주어진다. (1 ≤ K ≤ N ≤ 106) 둘째 줄에 N개의 인형의 정보가 주어진다. (1 또는 2) 출력 K개 이상의 라이언 인형을 포함하는 가장 작은 연속된 인형들의 집합의 크기를 출력한다. 그런 집합이 없다면 -1을 출력한다. 예제 입력 1 10 3 1 2 2 2 1 2 1 2 2 1예제 출력 1 6제출 답안 ''' 1. 아이디어 - 라이언의 위치를 먼저 구한다. - k개의 묶음으로 비교한다. 2. 시간 복잡도 - 3. 변수 - num []..