전체 글 247

[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)일정 예상 소요시간일정 마감 일자현재 일정 상태고정된 일정 여부일정 관계 도메인이전에 마쳐야 하는 일정이후에 수행해야 하는 일정사용자 도메인아이디닉네임수면 시간식사 시간쉬는 날이번주 총 집중 시간이번주 총 업무 시간

PinIt - Use Case

본 목록은 일정 관리 제품 "PinIt"의 Use Case로, 핵심적으로 구현해야 하는 필수 기능부터 제품의 특색을 살리는 부가기능까지의 기능 구현 우선순위를 기준으로 1, 2, 3순위로 나타낸 Use Case이다. 1순위일정 추가기능사용자는 일정 추가 버튼을 클릭하여 일정 추가 창을 연다사용자는 그 안에 다음을 입력한다.일정 이름일정 타입일정 마감일자일정 중요도일정 예상 시간이전에 수행해야 하는 일정이후에 수행해야 하는 일정사용자는 일정 자동 배치 버튼을 클릭할 수 있다.시스템은 추천 일정 배치일자를 결정한다.시스템은 입력값을 검증한다.시스템은 입력받은 대로 DB에 일정을 추가한다.사후조건사용자가 일정 배치를 수행하지 않았을 경우, 일정 추가를 선택한 날짜에 해당 일정을 추가한다.일정이 DB에 추가되..

FE 작업 순서 (Material UI + 일반 Webapp 기준)

0) 킥오프 · 요구사항 정리화면 목록/유스케이스/권한/네비게이션 플로우 확정API 스펙 합의(가능하면 OpenAPI/Swagger 문서로 고정)디자인 산출물(Figma) 수령 및 컴포넌트 카탈로그 확정1) 디자인 → 디자인 토큰화 (MUI 테마 맵핑)브랜드 컬러/중립 컬러 → theme.palette타이포 시스템(폰트/크기/행간) → theme.typography라운드/간격 → theme.shape.borderRadius, spacing 스케일브레이크포인트 → theme.breakpoints→ 산출물: “디자인-토큰 치환표(맵핑표)” 1장토큰이란, 색상, 글꼴, 크기, 간격, 그림자 같은 디자인 속성들을 재사용 가능한 변수로 추상화한 것을 의미한다. const theme = createTheme({ ..

WEB FE Repository 2025.10.03

[논문 리뷰] Proximal Policy Optimization Algorithms

본 글은 "Proximal Policy Optimization Algorithms” (Schulman, Wolski, Dhariwal, Radford, Klimov, 2017)를 읽고 리뷰한 내용입니다. Proximal Policy Optimization AlgorithmsWe propose a new family of policy gradient methods for reinforcement learning, which alternate between sampling data through interaction with the environment, and optimizing a "surrogate" objective function using stochastic gradient ascent. Wher..

AI Repository/DRL 2025.10.01

DRL 환경 - 전이 함수의 설계

DRL을 이용하여 새로운 문제를 해결하려면 일단 환경이 존재해야 한다.환경의 구현을 위해 디지털 트윈(Digital Twin)과 같은 환경을 구성하는 다양한 방식들이 논의되고 있지만, 그 모든 환경의 구현 이전에는 문제의 모델링이 우선되어야 한다. 강화학습의 문제 모델링에 대해서는 다음 네 가지를 고려해야 한다.상태행동보상전이함수이번 글에서는 이 중 전이 함수에 집중해서 알아볼 것이다.이번 내용은 다음과 같은 순서로 진행할 것이다.먼저, 전이 함수로 구현할 수 있는지 여부를 파악한다.이후, 전이 함수의 형태를 결정한다.마지막으로, 구현한 전이 함수가 현실을 충분히 반영하고 있는지 확인한다.실현 가능성 확인전이 함수가 P(s_t+1|s_t, a_t)로 정의된다는 사실을 다시 떠올려보자.전이 함수는 마르코프..

AI Repository/DRL 2025.09.29

DRL 환경 - 보상의 설계

DRL을 이용하여 새로운 문제를 해결하려면 일단 환경이 존재해야 한다.환경의 구현을 위해 디지털 트윈(Digital Twin)과 같은 환경을 구성하는 다양한 방식들이 논의되고 있지만, 그 모든 환경의 구현 이전에는 문제의 모델링이 우선되어야 한다. 강화학습의 문제 모델링에 대해서는 다음 네 가지를 고려해야 한다.상태행동보상전이함수이번 글에서는 이 중 보상에 집중해서 알아볼 것이다.보상의 역할보상 신호는 에이전트가 최대화해야 하는 목적 함수(objective function)를 정의한다.보상 설계는 강화학습의 근본적인 문제 중 하나이고, 환경에 대한 깊은 지식이 필요한 영역이며, 여러 가지 이유로 인해 해결하기 어려운 문제로 알려져 있다.보상이 양의 부호인가? 음의 부호인가? 혹은 0인가?보상의 크기(스칼..

AI Repository/DRL 2025.09.29

DRL 환경 - 행동의 설계

DRL을 이용하여 새로운 문제를 해결하려면 일단 환경이 존재해야 한다.환경의 구현을 위해 디지털 트윈(Digital Twin)과 같은 환경을 구성하는 다양한 방식들이 논의되고 있지만, 그 모든 환경의 구현 이전에는 문제의 모델링이 우선되어야 한다. 강화학습의 문제 모델링에 대해서는 다음 네 가지를 고려해야 한다.상태행동보상전이함수이번 글에서는 이 중 행동에 집중해서 알아볼 것이다.행동을 구현하는 데에는 다음 두가지를 고려해야 한다.행동의 완결성(completeness)원하는 모든 것을 제어할 수 있게 해주는가?행동의 복잡성(complexity)행동의 최소 단위를 어느정도의 수준으로 둘 것인가?우선, 행동의 설계를 몇 가지 확인하고, 각 질문에 대한 상세한 정보를 알아보자.행동의 설계행동의 표현행동은 보통..

AI Repository/DRL 2025.09.29

DRL 환경 - 상태의 설계

DRL을 이용하여 새로운 문제를 해결하려면 일단 환경이 존재해야 한다.환경의 구현을 위해 디지털 트윈(Digital Twin)과 같은 환경을 구성하는 다양한 방식들이 논의되고 있지만, 그 모든 환경의 구현 이전에는 문제의 모델링이 우선되어야 한다. 강화학습의 문제 모델링에 대해서는 다음 네 가지를 고려해야 한다.상태행동보상전이함수이번 글에서는 이 중 상태에 집중해서 알아볼 것이다. 상태를 구현하는 데에는 다음 세가지를 고려해야 한다.상태의 완결성(completeness)상태의 표현이 세상이 제공하는 정보가 충분히 포함되어 있어서 문제를 해결하는 데 무리가 없는가?상태의 복잡성(complexity)상태의 표현이 얼마나 효과적이고 상태의 표현을 위해 요구되는 계산량은 얼마인가?상태 정보 손실(informat..

AI Repository/DRL 2025.09.28