본문 바로가기

전체 글67

[코드트리/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.
[코드트리/C++] 조상 노드 (DFS) 문제https://www.codetree.ai/problems/node-ancestor/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상조상 노드의 유무를 파악하는 문제였다. 오랫만에 찐 dfs다운 문제를 만나서 잠깐이지만 좀 설렜다 ㅎㅎ 조상 노드의 유무를 파악하는 방법이 dfs를 이용하는 것이라는 것만 파악했다면 어렵지 않은 문제인데, 해당 과정이 흔하지 않아 처음 봤을땐 어렵게 느껴졌던 것 같다. dfs 과정을 루트(1번 노드)부터 시작하여 재귀적으로 진행하다보면 이것으로 노드간의 부모 자식 유무를 파악할 수 있을 것 같은 .. 2024. 9. 10.
[FOSSLight / DevOps] VS Code extension 배포 자동화 현재 Fosslight scanner 오픈소스 컨트리뷰션을 하고있다. 이번에 DevOps 팀으로 가게 되었고, vs code extension 배포 자동화 issue를 맡아서 진행했다. vscode도 오랫만이라 어색했고, extension 배포는 안해봤지만, github action을 활용한 배포는 여러번 경험해봐서 어렵지 않게 pr 올릴 수 있었다. 현재는 pr review 중이고, 큰 문제가 없는 한 merge 될 것 같다. (두근두근)  나의 PR: https://github.com/fosslight/fosslight_scanner_vscode/pull/3 Publish vscode extension to Visual Studio Marketplace by persi0815 · Pull Reques.. 2024. 9. 9.
[회고록] KAUPC 6등 KAUPC는 한국항공대 알고리즘 학회인 KOALA가 주관하여 개최하는, 올해로 4회를 맞은 알고리즘 대회이다. 계속 백준에서 진행되어왔다가 올해는 code tree 플랫폼을 이용하여 진행이 되었다! 사실 현재 koala 부회장이어서 올해 문제를 출제해야했었는데, 작년에 대회에 참가하지 못해 아쉬워서 올해 출전을 결심하게 되었다. 올해에는 개인전으로 진행이 되었고, 5시간 동안 알고리즘 잘하시는 분들이 출제하신 아래의 10문제를 풀면 되는 대회였다. 검색과 메모가 가능했지만, 생각보다 심리적 부담감이 크게 느껴졌던 것 같다. 천천히 문제의 본질을 꿰뚫어 보면 쉬운 문제들이었는데, 문제가 의도한 바를 짚어내지 못해 방황한 시간들이 너무나 컸다. 시간 내에 못 푼 문제들이 좀 있어서 많이 아쉬웠지만, 대회 끝.. 2024. 9. 9.
[코드트리/C++] 곱빼기 (Math) 문제https://www.codetree.ai/problems/mul-minus/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상문제 자체는 거창해보이지만, 사실 생각할 거리가 조금 있는 비교적 쉬운 문제였다. 우선, while문을 통해 목표값보다 크거나 같은 가장 작은 2의 거듭제곱을 찾는다. 이때 값과 함께 shift 수도 구해야 한다. 그리고,  해당 값과 구해야하는 값을 빼서 남은 값을 계산한다. 남은 값을 2의 거듭젭곱으로 분해해야하는데, 해당 과정이 조금 어렵다.  우선,  8이 2^3 이라는 점을 알고 있으니, 이를 .. 2024. 9. 9.
[코드트리/C++] 저것도 먹을거란 말이야 (Greedy / Math) 문제https://www.codetree.ai/problems/i-want-to-eat-more/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상간단히 문제를 보면 내용이 은근 많아서 꽤나 복잡한 문제라고 생각하기 쉽지만,, 본질을 꿰뚫어보면 사실 정말 간단한 문제이다. 나도 헤맨 부분인데, 사실 한 음식에 대해 개수가 다양하게 주어지는데, n일 동안 최대 3번을 먹을 수 있기에 최대 3개로 저장하면 된다. 그렇게 되면, 어제 먹은 맛과는 다른 맛만 먹으면서 n일을 버티면 다이어트 성공!이 된다. 그리고.. 정말 놀라운 점은 해당.. 2024. 9. 9.
[코드트리/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.
[코드트리/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.
[코드트리/C++] 해시함수 (Hashing) 문제https://www.codetree.ai/problems/return-value-of-hash-function/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상해시 함수에 문자열 입력값을 넣어서 특정한 값으로 추출하는 해싱 그 자체인 문제였다. string으로 입력 받은 후에 인덱스 하나하나 고려하며 계산을 진행했다. 먼저 숫자가 나오면, num이라는 변수에 넣어주었다. 숫자가 연이어 나오면, 연이어 나온 숫자 자체가 값으로 판단이 되어야 해서 직전에 숫자가 나왔었는지 알려주는 flag를 이용했다. 영어가 나오면 이전에 nu.. 2024. 9. 5.
[코드트리/C++] 캣타워 돌리기 (Simulation) 문제https://www.codetree.ai/problems/rotate-cat-tower/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 구상* 문제에서 주어지는 캣타워의 모습은 위에서 본 모습이 아닌 옆에서 본 모습이다!! 문제 자체만 보면 그냥 캣타워 돌리고 구조물이나 고양이 위로 고양이를 떨어뜨리면 되는, 그리 어려운 문제는 아닌데, 떨어뜨릴 때 다양한 경우의 수를 고려해야했다. 반시계방향이나 시계방향으로 돌리는 로직은 조금 까다로웠지만, 그래도 인덱스만 잘 고려하면 쉽게 구현할 수 있었다. if (dir == 1) { //.. 2024. 9. 5.
[백준/C++] #1525 퍼즐 (BFS) 문제https://www.acmicpc.net/problem/1525 구상빈칸을 움직여서 배열의 상태가 원하는 상태로 나오게끔 하는데, 이때의 최소 이동 횟수를 구하는 문제였다. 최소 이동 횟수를 구하는 것이다 보니 bfs를 이용하는 문제라는 건 인지했지만, 원하는 상태로 바꾸는 데에 있어서 빈칸을 언제까지 움직여볼 것인가에 대한 고민이 들었다. 단순하게 방문했는지의 여부를 판단하기에는 빈칸을 움직이는 순서에 따라서 상황이 다양하게 바뀔 수 있었다. 그래서 그 이전에 해당 상황에 도달한 적이 없다면, 큐에 넣는 방식을 택했다. *map의 find(key) 결과값이 map.end()값과 같다면, 원소가 없다는 뜻이다. *만일 원소가 있다면, map::iterator 를 반환하고, iterator는 -> 연.. 2024. 9. 1.
[회고록] 백준 PLATINUM 달성 https://solved.ac/en/profile/moonlight0815 백준 플레티넘 달성한 겸 간단한 회고2022년 겨울방학 때 경영학과에서 소프트웨어학과로 전과하며 막막한 심정으로 알고리즘 공부를 시작했다. KOALA라는 항공대 알고리즘 학회에서 스터디를 하며 공부를 시작했는데, 막막하게 시작한 것 치고 적당히 재미있게 스터디에 임했었다..ㅋㅋㅋ (지금은 해당 학회의 운영진이라는게 참 신기하다 ㅎㅎ) 그리고 참 감사하게도 고등학생 때 1년간 파이썬이랑 자바를 공부했어서 나름 힘들이지 않고 알고리즘 뿐만이 아니라 소프트웨어쪽 공부에 적응할 수 있었다. 2학년 올라와서는 자료구조랑 AI랑 알고리즘이랑 UMC(연합동아리) 하면서 학과 지식도 쌓고 프로젝트 경험도 했다. UMC 덕분에 선배들과 스터디도.. 2024. 8. 28.