2025/10 23

[USACO Gold] DAG - 위상 정렬

위상 정렬이란, Directed Acyclic Graph(DAG)의 정점들을 각 정점이 자신의 자식 정점들보다 먼저 방문되도록 나열하는 것을 의미한다.방향 그래프(directed graph)는 간선을 한쪽 방향으로만 이동할 수 있는 그래프를 의미한다.또한 비순환 그래프(acyclic graph)는 순환(cycle)을 포함하지 않는 그래프를 의미한다.이는 하나 이상의 간선을 따라가서 출발한 정점으로 다시 돌아올 수 없는 구조를 말한다.이 두 정의를 합치면, 방향 비순환 그래프(directed acyclic graph, 줄여서 DAG)는 간선을 한쪽 방향으로만 이동할 수 있고 순환을 포함하지 않는 그래프이다.위상 정렬 (Topological Sort) - Course Schedule다음 문제를 풀어보자. C..

PS/USACO Gold 2025.10.07

[USACO Gold] Disjoint Set, 분리 집합, Union-find

그래프에 간선을 추가하고 그래프의 두 정점이 연결되어 있는지 검사할 수 있게 해 주는 자료구조가 분리 집합(DSU, Union-Find) 이다.USACO.guide는 알고리즘의 원리와 정의보단 어떻게 이 정의를 떠올릴 수 있는지에 집중한다.알고리즘의 원리와 정의가 중요하지 않다는 뜻이 아니다.실제 Union-find의 원리와 관련된 내용은 다음 링크를 참고 바란다. CS Academy csacademy.com 구현(Implementation)import java.util.*;public class DisjointSets { int[] parents; int[] sizes; public DisjointSets(int size) { parents = new int[size]; ..

PS/USACO Gold 2025.10.07

2023 KAKAO BLIND RECRUITMENT 1차 코딩테스트 후기

공식 풀이는 다음 링크를 통해 확인하실 수 있습니다.https://tech.kakao.com/posts/567 2023 카카오 신입 공채 1차 온라인 코딩 테스트 for Tech developers 문제해설 - tech.kakao.com2023 KAKAO BLIND RECRUITMENT 1차 코딩 테스트가 지난 9월...tech.kakao.com 카카오 공채도 썼겠다, 지난 카카오 공채의 코딩테스트 문제도 풀어보고, 프로그래머스 환경도 체험해보고자 프로그래머스에 존재하는 카카오 2023 블라인드 공채에 출제되었던 문제를 5시간동안 풀어보았다. 5시간동안 5문제를 풀었는데, 문제가 복잡해졌을 때 생각을 키보드로만 정리하는 과정이 좀 고되긴 하다.그림같은 걸 그릴 수 있을 수 있으면 좋을텐데, 이건 코테 환..

PS 2025.10.06

53. Maximum Subarray - 카데인 알고리즘

문제를 해설할 때 특수한 DP로 카데인을 자주 언급하게 되는데,카데인 알고리즘이 정확히 어떤 이점이 있는지, 다른 DP와는 무엇이 다른지 명확히 설명한 글이 없어 이렇게 글을 작성한다. 핵심 아이디어는 다음과 같다.dp[i]: 반드시 i에서 끝나는 최대 부분 배열 합즉, 한쪽 끝을 고정함으로써 중간의 연산을 최적 부분구조 + 중복 부분 문제의 형태로 만드는 아이디어가 핵심이다. 그러면 이 문제에서 전체 정답은 max_i dp[i] 가 된다.마지막 원소 a[i]를 포함해야 하므로 두 선택지뿐이다.a[i] 혼자로 새로 시작한다.i−1에서 끝나는 최적해 dp[i−1]에 a[i]를 이어붙인다.따라서 점화식은 다음과 같다.초기값이 점화식은 “끝이 i인 최적해”의 정의에서 바로 나온다.아이디어임의의 최적 부분 배..

PS/이론 2025.10.05

랜덤 보상 지급기

요새 너무 삭막하게 사는 것 같아 나 자신에게 보상을 줄 필요성을 느꼈다.import numpy as npimport jsonfrom datetime import dateREWARDS_JSON = "rewards.json"RESULT_TXT = "result.txt"PROB_TXT = "prob.txt"def get_reward(rewards, prob): print("하루의 집중 작업(3시간 이상 걸리는 작업)을 완료했나요?") answer = input("Yes/No: ") if answer != "Yes": print("다음에 다시 오세요!") return print("어떠한 문제를 해결했나요?") answer = input("해결한 문제: ") ..

개인적 공간 2025.10.05

[1만 시간의 재발견] 의도적 연습

이 책은 최소한으로 지켜야 하는 '의식적인 연습'에 대해 형식적으로 정의한 책이다.기회, 동기부여, 노력 등의 가치를 주장하는 책이 아닌, "의도적 연습"의 방법을 제시하는 책이다.좋은 환경에 있을 수 없을 때, 내 주변의 환경을 의식적으로 '좋은 환경'에 몰아넣기 위한 최소 조건을 정의한다.주변 환경의 도움을 받을 수 없을 때, 스스로 환경을 구성해야 한다면 좋은 기준이 되는 도서이다.요약 - 의식적인 연습의 방법명확하고 구체적인 목표가 존재하는 것무엇을 목표로 할 것인가?정확도를 높일 것인가?속도를 높일 것인가?어디까지 할 것인가?즉각적인 피드백 루프가 존재하는 것어떤 것이 문제여서 실패했는가? 라고 끊임없이 되묻는 것코치리뷰테스트동기 부여를 위해, 보상 체계를 깨끗하게 유지할 것즉시 보상조건부 보상..

개인적 공간 2025.10.05

2025년 10월 1주차 회고

항상 무언가를 수행하기.체계적인 상태를 유지하기.보상 체계를 깨끗히 유지하기.다음에 무엇을 해야 할 지 상상하기.이번주에 한 것항암치료 종료파드셉 분석릿코드 Hard 1일 1문제 - 스트릭 기록하기글을 너무 많이 써서 그런지, 조회수가 대폭 하락함.블로그 운영에 악영향 발생카페 알바커피 원두 종류 및 맛 분석(블렌딩 or 싱글오리진)핀잇핀잇 Use Case 도출핀잇 도메인 모델 설계핀잇 UI 컴포넌트 - Material UI 사용하기로 결정PPO / MountainCar 최종 정리글 작성 이번주에 하지 못한 것요구사항에 따른 UI 컴포넌트 완성좀 더 "형식적인" FE 접근 방법을 잘 모르겠음따라서 GPT를 참고하여 작업 과정 파악 & 견적 계산다음주에 할 수 있는 것핀잇핀잇 디자인 완성핀잇 FE 프로젝트..

Material UI 기반 디자인 진행 순서

1. 요구사항 & UX 리서치서비스 목표·주요 유저 시나리오 정의어떤 기능/화면이 필요한지 플로우 정리 (로그인, 대시보드, 설정 등)경쟁 서비스 벤치마킹 (UX 패턴 참고 → MUI 컴포넌트 맵핑 가능)2. 정보 구조 & 와이어프레임페이지 플로우 / IA: 어떤 페이지들이 있고, 어떤 경로로 이동하는지 결정와이어프레임: 흑백 박스 수준에서 구조만 정의예: 상단바(Header), 좌측 네비게이션, 메인 콘텐츠, 버튼 위치이때부터 MUI 기본 컴포넌트(Button, AppBar, Grid 등)로 대응할 수 있음3. 디자인 토큰 확정 (MUI Theme Mapping)브랜드 컬러 → theme.palette.primary / secondary폰트/글자 크기 → theme.typography간격/라운드 값 →..

WEB FE Repository 2025.10.03

PinIt - Domain Model

일정 도메인일정 타입집중 작업행정 작업(이메일 회신, 전화, 짧은 보고, 회의 준비)짧은 업무(유지관리 활동, 운동, 청소, 정리, 일기 쓰기)일정 중요도(1~10)일정 예상 소요시간일정 마감 일자현재 일정 상태고정된 일정 여부일정 관계 도메인이전에 마쳐야 하는 일정이후에 수행해야 하는 일정사용자 도메인아이디닉네임수면 시간식사 시간쉬는 날이번주 총 집중 시간이번주 총 업무 시간