본문 바로가기

전체 글142

[백준/Python] 19236 청소년 상어 사용 개념 : DFS 백트래킹, 시뮬레이션상어가 물고기 먹는다.물고기 이동.상어 DFS로 이동.가능한 모든 경우 탐색 → 최댓값 찾기.요약입력 파싱 → bord[4][4]에 물고기 번호, fish[1..16]board[x][y] : 각 칸의 물고기 번호.fish[1..16] : 물고기 각각의 정보를 저장해두는 배열위치, 방향, 생존 여부등의 정보fish[num] = [x좌표, y좌표, 방향, 살아있는지]fish[5] = [2, 1, 3, True](0,0) 물고기 먹고 상어의 시작 방향 결정dfs 진입물고기 이동(1→16 순서, 회전 최대 8번, 상어 칸 불가, 교환 스왑)상어가 현재 방향으로 1~3칸 중 물고기가 있는 칸만 이동 시도매 이동마다 상태(보드/물고기 배열) 깊은 복사 → 재귀더 못 움직이면.. 2025. 9. 9.
[RhythMeet] 랜딩페이지 성능개선 (1) - 코드스플리팅, 스크립트 로딩 지연(defer), 이미지개선 리드밋 최종 발표를 완료했다. 도메인도 구매하였다.최종 발표 후기는 차차 적기로 하고, 우선 배포 전 성능 개선을 해보겠다.아무래도 로딩이 빨라야 사용자 입장에서 편하니까.랜딩페이지가 느린게 영 마음에 들지 않았다. Lighthouse를 확인해 보았다. 왼쪽은 local 환경, 오른쪽은 배포 환경이다. 왼쪽이 저렇게 차이가 나는 이유는 백엔드에서 배포 환경만 응답하도록 설정해놨기 때문이다..그래서 유저 정보 api콜백에서 403에러가 떠서 시간이 저렇게 길게 나오는것이다. 백엔드에서 url을 두개 설정하는게 안된다하여 (이래서 개발서버 운영서버 나누는건가보다)일단 이 두개를 비교해가면서 수정해보기로 한다. 수정 기준은 배포환경 기준이다.각각의 성능 지표가 무엇을 나타내느냐, 하면 이렇게 아래의 표로 볼 .. 2025. 7. 5.
[RhythMeet] 리드밋 기획 : 그리고 영광의 기획 발표 1등🥇 대망의 딥다이브 마지막 프로젝트가 다가왔다.11월 14일부터 6월 20일까지, 길다면 길고 짧다면 짧았던 여정에 마침표를 찍을 프로젝트이다. 파이널 프로젝트는 "자유주제"였다. 거의 아이디어 싸움이 될 것 같은사실 난.. 마음 한 구석에.. 이전에 만들었던 합주 시간표 사이트를 업그레이드 해보고싶은 욕심이 있었다.아무래도 수요가 있는 서비스이기도 하고, 우리 동아리뿐만 아니라 다른 동아리까지 확장할 수 있는 가능성도 있고,거기다 내가 정말로 필요해서 만들었던 애정이 담긴 서비스인데이전 프로젝트는 아무래도 1인 개발이다보니 시간표도 내가 직접 리스트로 하드코딩해서사용자는 바꿀수 없는.. 그런 제한된 개발을 했었다.(사용자 이름 선택 -> 그 시간표 불러와서 계산해주기 끝!) 마음속으로는 에타 시간표를 들고.. 2025. 6. 18.
react-hook-form과 zod : 폼 상태관리와 유효성 검사 폼을 만들때 리액트 훅 폼으로 상태 관리를 하고 zod 를 사용해 유효성검사를 한다.이런게 있다니 그래서 자세히 알아보기로 한다.왜 쓰는가, 어떻게 사용하는가, 기본 구조와 흐름까지 알아보자.react-hook-form이란 무엇인가?리액트에서 폼을 쉽게 만들고 관리하도록 도와주는 라이브러리 import { useForm } from "react-hook-form";이렇게 import 해서 사용할 수 있다. 왜써? = 편하니까 -> 왜편한데? -> 코드가 간결해짐 -> 뭐가 간결해지는건데?-> useState의 남발이 줄어드니까 -> 에? -> 기존에는 input 마다 value 값을 넣어서 관리했자너?그런데 이건 value 값 안적어도 됨. 그니까 input마다 value 관리하는 useState 없어도.. 2025. 5. 23.
[백준/Python] 13549 숨바꼭질3 외 최단경로, 최소비용 구하기 (다익스트라 문제 모음) 이번에 푼 문제 3개. 골드 3문제이다 빠밤-!최소비용 구하기, 최단경로는 기존에 공부했던 다익스트라 알고리즘을 적용하며 쉽게 풀었으나숨바꼭질 3에서 코드를 굉장~히 많이 고쳤다. 그래서 숨바꼭질 3에 대해 깊게 적어보려고 한다. 1753 최단경로우선최단경로. 다익스트라를 그대로 사용해 모든 경로를 순서대로 출력하면 된다.#1753 최단경로import sysimport heapq# 정점개수, 간선 개수V,E = map(int, sys.stdin.readline().split())# 시작점K = int(sys.stdin.readline())# 그래프만들기graph = {n: [] for n in range(1, V + 1)}for i in range(E): u, v, w = map(int, sys.s.. 2025. 5. 4.
[알고리즘] 최단경로(1) 다익스트라 내복쓰 - 내가 복습하려 쓰는다익스트라 알고리즘입력: 가중치가 양수인 그래프, 시작 정점🧠 동작 원리 (우선순위 큐 사용)시작 정점의 거리를 0, 나머지는 무한대로 설정가장 거리가 짧은 노드를 우선순위 큐에서 꺼냄해당 노드의 인접 노드들의 거리를 확인하고, 더 짧은 거리로 갱신되면 업데이트모든 노드를 방문하거나 큐가 빌 때까지 반복 우선순위 큐로 구현한다. 가장짧은것을 우선적으로 꺼낼 수 있기 때문이다.아래는 우선순위로 구현한 다익스트라 함수이다.import heapqdef dijkstra(graph, start): distance = {node: float('inf') for node in graph} # graph = {'A': [...], 'B': [...]} # 그래프의 모든 노.. 2025. 5. 2.