TIL. Jul 29, 2026

오늘 한 내용 LeetCode 3518: Smallest Palindromic Rearrangement II Codeforces 189A: Cut Ribbon 블로그 깃 훅 제거 블로그 스크립트 구조화 블로그 커밋 목록 정리 해결 내용 PS 두 문제를 푼 이후에, 블로그에서 스크립트와 깃 훅을 교체하고, 하루종일 깃과 씨름했다. Hugo 프로젝트의 커밋 로그가 너무 더러웠고, Squash, Rebase로 한 번 정리하려는데, 중간에 워킹 트리가 한번 꼬여버렸다. 블로그 깃 훅 일시 제거. 블로그 깃 훅에는 두 가지 문제가 있다. 첫 번째는 타이밍 문제다. pre-commit에 뭔가 내용을 수정하는 훅을 넣으면, 커밋이 멈추지 않고. 변경사항을 유지한채로 커밋되어버린다. ...

July 29, 2026

TIL. Jul 21, 2026

키워드 Codeforces 가입 로컬 LLM opencode에 연결하고 ACP로 Xcode에 연동하기 SwiftUI WWDC 세션, 특히 View Value와 View Identity 내용 PS 풀기, Codeforces 가입 LeetCode에서만 문제를 푸는게 조금 시야가 좁아지나 싶어서, Codeforces에 가입했다. Swift 지원이 없지만, PS 문제를 풀 때 특정 언어에 종속되지 않으려고 꾸준히 Swift, Python, C++를 돌아가면서 풀고 있으니 큰 문제는 없다. 가장 풀이 수가 많은 문제 하나를 풀었다. 매일 LeetCode 오늘의 문제를 푸는 것이 루틴 중 하나인데, Codeforces, 삼성 SW Expert Academy 등 온라인 저지 사이트 여럿 돌아다니면서 풀어보려 한다. BOJ가 사라진 이후로 LeetCode 의존이 꽤 심해졌는데, 다양하게 풀어봐야겠다. ...

July 21, 2026

TIL. Jul 20, 2026

키워드 단조 스택 Hugo Flat Post -> Page Bundle 블로그 스크립트는 어떤 언어로? Xcode 프로젝트명 바꾸기 SwiftUI Identity 내용 LeetCode 1081, Substring, Subsequence, Monotonic Stack LeetCode 1081 PS 문제를 풀면서, 처음에 Medium 문제인데 좀 해맸다, LCS 두 개를 하면서 Substring이랑 Subsequence 차이를 분명히 알았는데, Substring으로 생각하고 풀어서 스택을 써야 할 곳에 투 포인터를 썼다. 단조 스택(Monotonic Stack) 문제인데, 사실 이런 스택이 있는지 오늘 처음 알았다. 그냥 스택은 스택으로 생각했으니까, 마치 Binary Search와 Parametric Search같은 느낌인가. ...

July 20, 2026

TIL. Jul 13, 2026

키워드 Python 로컬 변수 스코프. Python에서 람다식 정리, Swift 인라인 클로저와 다른점. 블로그 마이그레이션 하면서 이전에 썼던 iOS 관련 글 복습 블로그에서 카테고리를 몇개를 해야하는가? 내용 Python 로컬 변수 스코프 문제 Leetcode 1291번 문제를 푸는 도중에 다음과 같이 코드를 작성했다. 로직에 오류가 있어서 통과는 못하는 코드다. class Solution: def sequentialDigits(self, low: int, high: int) -> List[int]: answer = [] seq = [] def dfs(n: int): if n > 9: return if seq: intSeq = int("".join(seq)) if high < intSeq: seq = [] # 이부분 return ... seq 변수가 sequentialDigits 함수의 로컬 변수인데, if 문 안의 seq = [] 부분 때문에 에러가 났다. ...

July 13, 2026

TIL. Jul 12, 2026

오늘 한 내용 Hugo 블로그에서 Mermaid를 외부 CDN 없이 렌더링하도록 변경 Mermaid가 필요한 페이지에서만 스크립트를 로드하도록 최적화 hugo --minify로 빌드 검증 배운 내용 Mermaid 코드 블록은 layouts/_markup/render-codeblock-mermaid.html에서 <pre class="mermaid">로 변환하고, layouts/_partials/extend_footer.html에서 Mermaid가 포함된 페이지에만 스크립트를 삽입하도록 구성했다. 처음에는 ESM 파일 하나만 static/에 복사했지만, 해당 파일이 내부 chunk를 추가로 참조하는 구조라 렌더링이 깨졌다. 브라우저가 다이어그램을 SVG로 바꾸지 못하고 원문 텍스트처럼 보여서, 의존성이 단순한 mermaid.min.js로 교체했다. 외부 CDN을 제거하는 작업도 단순히 파일을 내려받는 것으로 끝나지 않았다. 번들 파일의 의존성과 실행 방식까지 확인해야 실제 정적 사이트에서 안정적으로 동작한다는 것을 배웠다. ...

July 12, 2026

TIL. Jul 2, 2026

요약 오늘은 0-1 BFS를 문제에 적용해 보면서 알고리즘 선택의 중요성을 느꼈다. 또한 티스토리 블로그를 Hugo로 이전하기 위한 마이그레이션 스크립트를 작성하며 HTML을 Markdown으로 변환했다. 배운 것 0-1 BFS LeetCode 3286. Find a Safe Walk Through a Grid 사용 언어: Python, Swift 사용 알고리즘: Dijkstra, 0-1 BFS 그동안은 거리 개념이 나오면 무조건 다익스트라를 사용했는데, 처음으로 0-1 BFS를 이용해서 문제를 풀었다. 같은 문제를 Python에서는 다익스트라로 풀었고. 0-1 BFS는 Swift로 풀었다. 기존에 Swift에서 BFS를 사용할 때는 배열과 인덱스 포인터를 이용한 유사 Queue를 사용했는데, 이 방식으로는 큐의 헤드에 원소를 push하는 메소드를 구현하기 어려워서 배열을 사용했다. 문제의 제약조건이 널널해서 배열로 충분히 통과했는데, 어떻게 해야할지는 고민해봐야 할 것 같다. Linked List를 이용해서 큐를 만들면 되지만, 이게 힙와 다익스트라를 쓰는 것보다 코드를 작성하는 입장에서 효율적일지는 잘 모르겠다. ...

July 2, 2026