전체 글 252

[백준] 6198 옥상 정원 꾸미기

https://www.acmicpc.net/problem/6198제목을 보고 구현문제 일줄 알았으나, 간단한 FILO 자료구조에 관한 문제였다.로직오른쪽 방향만 바라봄 -> 빌딩의 높이른 맨 오른쪽 부터 탐색현재 빌딩에서 필요한 정보는 오른쪽(이미 탐색이 끝난) 빌딩 정보빌딩의 오른쪽부터 탐색하며 기존의 높이와 비교기존 데이터에서 현재 빌딩(i번째 빌딩)보다 낮은 높이의 데이터들(i+....) 제거논리적으로 이후 탐색에서 i번째 빌딩을 볼 수 있다는 것은, (i+....)에 해당하는 빌딩을 모두 볼 수 있음현재 빌딩보다 높거나 같은 빌딩이 나올 경우, 그 현재부터 해당 빌딩까지의 index를 계산하면 몇개의 빌딩을 볼 수 있는지 알 수 있음현재 빌딩이 가장 높은 경우, 마지막 빌딩까지의 index 계산특..

[maum-agit] 프로젝트 후기

프로젝트를 끝낸 직후에 작성한 후기는 다시 보니 너무 개인적인 이야기라 비공개 처리되었습니다. 시작 당시 프로젝트의 큰 목표는 1.AI를 활용한 개발 경험 2. 풀스택 개발 경험 이 두가지였다.특히 AI를 사용하면서 든 생각들을 주로 이야기 할려고 한다. 지금까지 백엔드 개발을 잠깐 하게 되면 python 기반의 Django를 주로 이용했다. 그 이유는 단순히 배운것이 Django였기 때문이다.이번엔 TypeScript(Javscript) 한가지 언어로 통일하고, 다른 백엔드 프레임워크 경험을 위해 nest.js를 사용하기로 결정했다.이 nest.js를 배우는데 Ai의 도움이 매우 컸다. nest.js의 구조부터 시작해서 api 요청이 들어오면 어떻게 진행되는지를 중점으로 모르는 것을 물어보면서 하다보니..

프로젝트 2025.10.28

baekjoon 17837 - 새로운 게임2

https://www.acmicpc.net/problem/17837설명board : 체스판의 색 객체horses : 현재 말의 row,col,dir을 담은 list[list[int]] 객체board_horse : 체스판 형식으로 말들을 배치해 둔 객체, index가 클수록 올라타있는 말 (idx가 0이면 가장 아래에 있는 말)구현이동하려는 칸이 체스판 밖이거나, 파랑인 경우방향을 180도 돌려서 이동을 하려고 함방향만 돌리는 것이 아닌, 이동도 함께 진행하므로 제일 먼저 체크방향을 돌렸는데, 이동이 불가능한 경우 continue로 이동 관련 로직 수행xboard_horse의 데이터(list)를 슬라이싱 해서 아래 있는 객체(home)과 움직일 객체(away) 분리빨간색 발판인 경우 away 객체 역순으로..

[python] baekjoon 13422 도둑

https://www.acmicpc.net/problem/13422로직투포인터, 슬라이딩 윈도우 알고리즘 문제로 이해되었다.0번집부터 M개의 집을 계산한 후, 한칸씩 이동하면서 앞뒤 값을 빼거나 더하는 방식N과 M이 같은 경우 반복문에서 같은 집단을 계속 탐색하는 문제가 발생해서 이를 특별히 처리느낀점재밌었다. python이 금방 익숙해지겠다는 생각이 들었다.# N : 집의 개수, M : 연속으로 훔칠 집의 개수, K: 방범장치 최소 돈의 양# 1int: cnt,total = 0,sum(moneyList[0:M]) if total

python 백준 13305 주유소

https://www.acmicpc.net/problem/13305접근 방식기름이 싼 곳에서 필요한 거리만큼 기름을 사서 운행 하는 방식이 best인 문제A,B,C,D,E 지점의 가격이 각각 4,3,2,4,1 이라고 가정E 지점의 가격은 의미가 X(이후로 이동을 안함), 가장 기름이 싼 곳은 C 지점C 지점에서 기름을 모두 살 수 있다면 좋겠지만, C 지점 까지 가기 위해 A,B 지점에서 기름을 최소한으로 구매해야함C 지점에서 기름이 싸기에 D 지점에서 기름을 살 필요가 없음즉 왼쪽 도시부터 진행하며 기름의 최소값 데이터만 필요(변수명 minPriceList)이후 각 도로를 순회하며, 그 도로를 진행할 때 기름의 최소값을 더함코드에서는 역순으로 했는데, 역순은 필요 없음코드def solution(N:in..

[폐기된 프로젝트]토이 프로젝트 loadeepdive 후기

프로젝트 개요lostark라는 게임에 대한 정보나 내 생각을 글로 정리한 웹페이지굳이 aws 서버를 쓸 정도로 관리할 웹 페이지가 아니라고 생각하여 github.io를 활용하기로 결정글을 .md파일로 만들어서 읽는 형태를 사용프론트엔드 프레임워크로 Next.js를 사용하고 상태관리에 jotai를 써보려고 생각next.js가 server side rendring이 되다보니 검색에 의한 유입되기 좋다고 판단jotai는 바텀 업 방식의 상태관리에 대한 호기심으로 사용Figma를 와이어프레임 & 목업 작성프로젝트 폐기 이유기능이 너무 불편글작성은 markdown 형식으로.md파일로 작성하고, 파일을 읽은 후 텍스트를 파싱해서 웹페이지에 아코디언?UI로 표현하려고 계획이 방식은 글을 자유롭게 작성하기도 어렵고, ..

프로젝트 2025.05.27

[python] 백준 15886 내 선물을 받아줘 2

로직설명을 어떻게 해야할까...커멘드는 E,W 두가지왼쪽부터 탐색시 E로 진행하다가, W를 만나는 순간 흐름이 바뀜W를 만나는 순간 선물을 하나 둬야함하지만 그 전칸도 W일 경우 추가 선물이 필요 없음def solution(N:int,cmds:str)->int: idx,cnt = 0,0 for idx in range(N): if cmds[idx] =='W' and cmds[idx-1] == 'E': cnt += 1 return cntN = int(input())cmds = input()ans = solution(N,cmds)print(ans)

[node.js] 백준 1449 수리공 항승

로직그리디 문제파이프에 문제가 생긴 곳이 담긴 array를 정렬첫 지점+ L 지점까지 첫 테이프 부착(변수명 record)다음 문제 지점이 record보다 작으면 그 전 테이프에 함께 수리가 됨record와 같은 경우 문제에서 0.5 만큼 간격을 줘야한다는 조건에 의해 새로운 테이프 필요다음 문제 지점이 record보다 크거나 같으면 테이프 개수 증가(cnt++) 후 새로운 record 기록const solution = (N,L,arr)=>{ let record = arr[0]+L; let cnt = 1; for (const num of arr){ if ( record>num) continue cnt ++; record = num+L } r..

[node.js] 백준 16401 과자 나눠주기

https://www.acmicpc.net/problem/16401로직이분탐색 활용과자를 사용하지 않아도 됨 => 최대값(end)을 과자 최소 크기로 설정하면 안됨생각해보니 end값을 Math.max(...arr)해서 (big O = N)의 연산으로 end값을 줄이고 시작하는게 좋겠다는 생각이 들어 수정// logicconst solution = (M,N,arr)=>{ const check = (M,value,arr)=>{ let cnt = 0; for (const len of arr){ cnt += Math.floor((len)/value); if (cnt>=M) return true; } return fal..

[node.js] 백준 8979 올림픽

https://www.acmicpc.net/problem/8979로직정렬 사용금,은,동 순서대로 중요도로 정렬정렬 완료 후 국가 K를 찾은 후, 같은 등수 나라가 있는지 확인하는 방식const solution = (N,K,arr) =>{ arr.sort((a,b)=>{ if (a[1] !== b[1]) return b[1] - a[1]; if (a[2] !== b[2]) return b[2] - a[2]; return b[3] - a[3]; }) for (let rank=0; rank=0;totalRank--){ const data = arr[totalRank]; if (gold === data[1..