목차 누적 합 [Java+Python]11659번, 구간 합 구하기 4 [Java+Python]2559번, 수열 [Java+Python]10986번, 나머지 합 [Java+Python]11660번, 구간 합 구하기 5 [Java+Python]25682번, 체스판 다시 칠하기 2 문제 승재는 인간-컴퓨터 상호작용에서 생체공학 설계를 공부하다가 키보드 자판이 실용적인지 궁금해졌다. 이를 알아보기 위해 승재는 다음과 같은 생각을 했다. '문자열에서 특정 알파벳이 몇 번 나타나는지 알아봐서 자주 나타나는 알파벳이 중지나 검지 위치에 오는 알파벳인지 확인하면 실용적인지 확인할 수 있을 것이다.' 승재를 도와 특정 문자열 $S$, 특정 알파벳 $\alpha$와 문자열의 구간 $[l, r]$이 주어지면 $S$의 $l..
목차 Greedy Algorithm [Java+Python]1931번, 회의실 배정 [Java+Python]11339번, ATM [Java+Python]1541번, 잃어버린 괄호 [Java+Python]13305번, 주유소 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 $A_i$가 오름차순으로 주어진다. ($1 ≤ A_i ≤ 1,000,000$, $A_1 = 1$, $i ≥ 2$인 경우에 $A_i$는 $A_..
목차 누적 합 [Java+Python]11659번, 구간 합 구하기 4 [Java+Python]2559번, 수열 [Java+Python]16139번, 인간-컴퓨터 상호작용 [Java+Python]10986번, 나머지 합 [Java+Python]11660번, 구간 합 구하기 5 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 K×K 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 ..
목차 누적 합 [Java+Python]11659번, 구간 합 구하기 4 [Java+Python]2559번, 수열 [Java+Python]16139번, 인간-컴퓨터 상호작용 [Java+Python]10986번, 나머지 합 [Java+Python]25682번, 체스판 다시 칠하기 2 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주..
목차 누적 합 [Java+Python]11659번, 구간 합 구하기 4 [Java+Python]2559번, 수열 [Java+Python]16139번, 인간-컴퓨터 상호작용 [Java+Python]11660번, 구간 합 구하기 5 [Java+Python]25682번, 체스판 다시 칠하기 2 문제 수 $N$개 $A_1, A_2, ..., A_N$이 주어진다. 이때, 연속된 부분 구간의 합이 $M$으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, $A_i + ... + A_j (i ≤ j)$ 의 합이 $M$으로 나누어 떨어지는 $(i, j)$ 쌍의 개수를 구해야 한다. 입력 첫째 줄에 $N$과 $M$이 주어진다. $(1 ≤ N ≤ 106, 2 ≤ M ≤ 103)$ 둘째 줄에 $N$개의 수..
목차 문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 빈칸에는 1이 들어가야 한다. 또한 위쪽 가운데 위치한 3x3 정사각형..
목차 누적 합 [Java+Python]11659번, 구간 합 구하기 4 [Java+Python]16139번, 인간-컴퓨터 상호작용 [Java+Python]10986번, 나머지 합 [Java+Python]11660번, 구간 합 구하기 5 [Java+Python]25682번, 체스판 다시 칠하기 2 문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의..
목차 누적 합 [Java+Python]2559번, 수열 [Java+Python]16139번, 인간-컴퓨터 상호작용 [Java+Python]10986번, 나머지 합 [Java+Python]11660번, 구간 합 구하기 5 [Java+Python]25682번, 체스판 다시 칠하기 2 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 풀이 구간 합, 혹은 누적 합을..
목차 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000..
문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열) 문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 풀이 조금 헷갈려서 시간이 들었지만, 흔하고(?) 유명한 동적계획법 문제이다. 먼저 두 문자열 n, m을 입력받고 (n.length + 1)(mlength + 1)크기의 이중 배열을 memo를 생성한다. 이어서 이중 반복문을 순회하며 n.charAt(i - 1..
- Total
- Today
- Yesterday
- 맛집
- 남미
- BOJ
- 알고리즘
- 세계여행
- 유럽여행
- spring
- 기술면접
- 스프링
- 파이썬
- 여행
- 동적계획법
- 자바
- 유럽
- RX100M5
- 칼이사
- 리스트
- 중남미
- 백준
- Python
- Backjoon
- 지지
- java
- 세계일주
- 스트림
- 세모
- a6000
- 면접 준비
- Algorithm
- 야경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |