본문 바로가기

알고리즘/코테 도장깨기8

[KAUPC/C++] 차이를 최대로 (Deque/Sliding Window) 문제https://www.codetree.ai/problems/make-dif-max/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상해당 문제는 특정 window 크기 안의 값들의 최소값, 최댓값을 구해야 하는 문제였다. queue를 이용하여 풀 수도 있지만, deque를 이용한 풀이가 더 효율적이었다. 먼저, 원형으로 이루어져있는 값들을 1차원 배열으로 나타내어서 0번부터 k-1번 원소가 마지막에 한번 더 필요했다. 그래서 배열 마지막에 추가로 넣어주었다. 예를 들어 위 사진과 같은 상태에서 k가 4라고 한다면, 배열을 [7,.. 2024. 9. 10.
[KAUPC/C++] 조상 노드 (DFS) 문제https://www.codetree.ai/problems/node-ancestor/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상조상 노드의 유무를 파악하는 문제였다. 오랫만에 찐 dfs다운 문제를 만나서 잠깐이지만 좀 설렜다 ㅎㅎ 조상 노드의 유무를 파악하는 방법이 dfs를 이용하는 것이라는 것만 파악했다면 어렵지 않은 문제인데, 해당 과정이 흔하지 않아 처음 봤을땐 어렵게 느껴졌던 것 같다. dfs 과정을 루트(1번 노드)부터 시작하여 재귀적으로 진행하다보면 이것으로 노드간의 부모 자식 유무를 파악할 수 있을 것 같은 .. 2024. 9. 10.
[KAUPC/C++] 곱빼기 (Math) 문제https://www.codetree.ai/problems/mul-minus/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상문제 자체는 거창해보이지만, 사실 생각할 거리가 조금 있는 비교적 쉬운 문제였다. 우선, while문을 통해 목표값보다 크거나 같은 가장 작은 2의 거듭제곱을 찾는다. 이때 값과 함께 shift 수도 구해야 한다. 그리고,  해당 값과 구해야하는 값을 빼서 남은 값을 계산한다. 남은 값을 2의 거듭젭곱으로 분해해야하는데, 해당 과정이 조금 어렵다.  우선,  8이 2^3 이라는 점을 알고 있으니, 이를 .. 2024. 9. 9.
[KAUPC/C++] 저것도 먹을거란 말이야 (Greedy / Math) 문제https://www.codetree.ai/problems/i-want-to-eat-more/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상간단히 문제를 보면 내용이 은근 많아서 꽤나 복잡한 문제라고 생각하기 쉽지만,, 본질을 꿰뚫어보면 사실 정말 간단한 문제이다. 나도 헤맨 부분인데, 사실 한 음식에 대해 개수가 다양하게 주어지는데, n일 동안 최대 3번을 먹을 수 있기에 최대 3개로 저장하면 된다. 그렇게 되면, 어제 먹은 맛과는 다른 맛만 먹으면서 n일을 버티면 다이어트 성공!이 된다. 그리고.. 정말 놀라운 점은 해당.. 2024. 9. 9.
[KAUPC/C++] 기후동행 카드 (Bruteforce) 문제https://www.codetree.ai/problems/climate-card/description구상그냥 정말 쉬운 연산문제다 풀이 + 코드#include#include#include#include#include#define MAX 101#define INF 987654321#define endl "\n"using namespace std;/*기후 동행 카드1회 충전으로 30일간 무제한 이용할 수 있음버, 지: 62,000 / 버, 지, 따: 65,000지: 1300 / 버: 1100 / 따: 40030일간의 지, 버, 따 총 이용 횟수가 주어질 때,가장 저렴한 수단으로 이용했을 때 지불하는 돈의 액수 출력기후동행카드 꼭 사용하지 않아도 됨. */int A, B, C;int res1 = 0; i.. 2024. 9. 5.
[KAUPC/C++] 한진이의 상품뽑기 (Bruteforce) 문제https://www.codetree.ai/problems/pick-maximum-mystery-gifts/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상우선, k의 상품을 넣어야 하는데, 모든 상품이 최소 m-1개씩 되도록 넣어주었고, 만일 상품이 남는다면, 마지막 종류의 상품에 상품을 몰빵해서 넣었다. 만일 상품이 부족하다면, 남은 개수를 넣어주었다.  그리고 상품을 최대한 뽑는데, 우선 최대 m-1개씩 뽑는다. m-1개가 안되는 상품들은 있는 개수만큼 뽑는다. 만일, m개 이상의 상품이 있는 상품 종류가 있다면, fla.. 2024. 9. 5.