문제 www.acmicpc.net/problem/3673 3673번: 나눌 수 있는 부분 수열 양의 정수로 이루어진 수열이 주어졌을 때, 연속하는 부분 수열의 합이 d로 나누어 떨어지는 것의 개수를 구하는 프로그램을 작성하시오. 예를 들어, 아래와 같은 수열의 부분 수열 중 4로 나누�� www.acmicpc.net 문제 풀이 1. n의 범위로 보아 연속된 부분수열의 합을 구하기 위해 누적합을 사용한다고 생각했습니다. 2. 시작점이 고정된 연속 부분수열의 합이 아니므로 구해야하는건 시작점을 s, 끝점을 e라 할 때, 구간[s,e]의 누적합이 (psum[e] - psum[s-1])%d ==0을 만족하는 (s,e)쌍을 찾는 것과 같았고, 이는 (psum[e] % d) == (psum[s - 1] % d)와 ..

문제 www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제 풀이 1. 항상 중앙 값을 구하기 위해 우선순위 큐 두 개를 아래의 그림과 같이 사용해서 입력받는 수를 관리하기로 한다. lpq = top쪽으로 갈수록 수가 커지는 max heap rpq = top쪽으로 갈수론 수가 작아지는 min heap 2. 입력받는 수(k)는 항상 두 힙중 하나에 들어가야하며 중앙값을 구하기위해 두 힙의 크기는 항상 같거나 lpq가 rpq보다 크기가 1큰 경우만..
문제 www.acmicpc.net/problem/17436 17436번: 소수의 배수 첫째 줄에 N(1 ≤ N ≤ 10)과 M(1 ≤ M ≤ 1012)이 주어진다. 둘째 줄에는 N개의 소수가 주어진다. 입력으로 주어지는 소수는 100보다 작거나 같으며, 같은 소수가 두 번 이상 주어지지 않는다. www.acmicpc.net 문제 풀이 m의 범위를 못보고 계속 int형으로 제출해 삽푼문제였다. 1. 우선 m에 대해 각각의 소수로 나눴을 때 나누어 떨어지는 개수를 모두 세어보면 m/p[0] , m/p[1] ...등이 있을 것이다. 2. 이 때 간단한 예시를 통해 생각해보면 중복으로 카운트되는 수들이 존재하는 걸 알 수 있다. m = 30, p[0]= 2 ,p[1] = 3 일 때, p[0]에선 2,4,6.....
문제 www.acmicpc.net/problem/16402 16402번: 제국 배성일력 73년, 대륙을 주름잡던 성일 제국은 무리한 정복 전쟁 끝에 멸망하게 되었다. 기회를 노리던 반란군들은 혼란을 틈타 제각각 왕국을 선포했고, 왕국들은 제국의 자리를 차지하기 위해 � www.acmicpc.net 문제 풀이 1. 유니온파인드로 집합을 관리하기 위해 각 국의 이름을 입력받은 후 파싱하여 map에 순으로 저장한다. 2. 위와 마찬가지로 각 국의 이름과 관계도 적절히 파싱한 후에 이기는 국가가 앞쪽으로 오도록 두 집합을 합쳐준다. 3. 합칠 때는 아래의 세가지 경우가 존재하고, 맨 위 두가지 경우는 같다고봐도 무방하다. (∵ 종주국 v의 부모는 pv) 종주국(u)이 종주국(v)을 이길 때 : u가 v의 속국으..

문제 programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 풀이 처음엔 열쇠를 따로 벡터에 넣어 관리하며 열쇠의 상태를 방문처리하는 방법으로 bfs를 돌려볼까 했으나 생각보다 구현이 힘들것 같아 다른 방향으로 생각해봤다. 키를 상,하,좌,우로 움직이는 경우를 생각해보면 아래와 같이 왼쪽 위 끝부터 오른쪽 아래 끝까지 이동할 수 있다. 키를 최대 $(n + m - 1)^2$번 이동하고 4번 회전할 수 있으며 lock의 개수 $(m^2)$만큼 비교하므로 충분히 완전탐색으로 구..
문제 programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 문제 풀이 1. 균형잡힌 문자열인지는 s를 탐색하며 '(' , ')'의 개수를 비교하면된다. 2. 올바른 괄호 문자열인지는 해당 문자가 '('이면 스택에 넣고, ')'일 때 스택에서 pop한다고 할 때 스택이 비어있는데pop하는 경우를 확인하면 된다. 코드 #include #include using namespace std; string f(string w) { vect..
문제 programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문제 풀이 1. 반복되는 문자열의 길이 l은 1
문제 www.acmicpc.net/problem/19576 19576번: 약수 가능 한 방법 중 하나로, a2를 12로, a3을 3으로 바꾸면 된다. www.acmicpc.net 문제 풀이 1. 약수관계를 생각해보면 1은 모든 수와 약수관계를 이루므로 와우매직을 사용하는 경우엔 1로 바꿔주면 된다. 2. 와우매직을 최소한으로 사용하기 위해선 기존의 수들이 최대한 많은 약수관계를 이뤄야하고, 이는 수들을 정렬했을 때 각 인덱스를 시작으로 해당 인덱스의 수와 다른 수들과의 약수관계를 이루는 길이를 구하고 그 중 최댓값을 n에서 빼주면 와우매직을 사용하는 최소횟수이다. 코드 #include using namespace std; int n, dp[5001]; vector a; int go(int cur) { i..
문제 www.acmicpc.net/problem/19588 b.first; } int main() { cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); cin >> n >> m; v.resize(n + 1), pxor.resize(n + 1), pxor2.resize(n + 1); for (int i = 1; i > x >> y; v[i] = { x, y }; } auto it = v.begin(); sort(it + 1, v.end(), cmp); for (int i = 1; i > q; while (q--) { cin >> a >> b; cout
문제 www.acmicpc.net/problem/19591 19591번: 독특한 계산기 숫자, '+', '*', '-', '/'로만 이루어진 길이가 106 이하인 수식이 주어진다. 계산 과정 중의 모든 수는 −263 이상 263 미만이며, 0으로 나누는 경우는 없다. 숫자 앞에 불필요한 0이 있을 수 있다. www.acmicpc.net 문제 풀이 1. 파싱 : 문자열을 숫자와 연산자로 파싱하는 과정이 까다롭지만 연산자가 나왔을 때, 연산자는 연산자대로 저장하고 그동안의 숫자들을 하나의 숫자로 묶어서 저장하면 쉽게 파싱할 수 있습니다. (첫 수가 음수일때 예외처리) 2. 자료구조 : 연산할 때 맨 앞과 뒤에 접근하므로 덱을 사용하여 숫자, 문자들을 관리할 수 있습니다. 3. 주어진 조건대로 연산자의 우선순..
- Total
- Today
- Yesterday
- 트리
- 표 편집
- 이분탐색
- 누적합
- 카카오 2021
- 카카오 인턴십
- 2022 카카오블라인드
- 프로그래머스 위클리 9주차
- 카카오 2020 인턴십
- 백준
- 구현
- 2022 카카오 블라인드 코딩테스트
- Kakaoblind
- 2020 KAKAO BLIND RECRUITMENT
- DP
- 게임이론
- 시뮬레이션
- 2021 KAKAO BLIND
- 카카오 표 편집
- 파싱
- 동적계획법
- BFS
- 카카오 2차코딩테스트
- 위클리 챌린지
- 프로그래머스
- 프로그래머스 월간코드챌린지
- 투포인터
- 2022 KAKAO BLIND RECRUITMENT
- 유니온파인드
- 2021 카카오 블라인드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |