반응형

분류 전체보기 141

적당히 하면 변명이 나오고, 어중간 하면 불평이 나오고, 진심을 다하면 지혜가 나온다

우리가 인생을 대하는 태도는 무엇인가우리는 살아가면서 그저 주어지는 대로 살아가는 경우가 많습니다.어떤 시기가 왔을때 무언가를 해내야 하는 것들이 있기 마련이기 때문인데요.해내야 하는 것들이 있음에도 그것 위한 종합 가이드북이 없다는게 놀라울 따름입니다. 사실 무언가를 해내야 하는 것의 주어와 목적어는 빠져있습니다.내가 나를 위해 해내야 하는건지,내가 남을 위해 해내야 하는건지,우리는 가끔 헷갈립니다. 보통 우리는 내가 나를 위해 해내야 한다고 생각하면서 그걸 향해 달려가지만곰곰히 생각해보면 오로지 나를 위해 해내야 하는 것들만은 아닙니다.사랑하는 사람들을 위해, 주변의 기대와 의식을 견뎌내기 위해, 그저 남들이 하니까. 사실 시작하고 나서는 동기는 그렇게 중요해지지 않습니다.까먹기 때문이지요.그리고는 ..

일상 2026.04.11

Claude Code와 첫 앱을 만들어 가면서

1. 들어가며요즘 Vibe Coding이 대세다.예전 석기시대시절 개발자들은 모든 코드를 한줄 한줄 정성스레 짰지만요즘은 AI에게 명령하고 딸각 버튼만 누르면 몇 백줄 몇 천줄 코드가 순식간에 쏟아져 나오는 시대다. 소프트웨어 산업 전선에서 살아남으려 발버둥 치고 있는 나에게이는 무시할 수 있는 게 아닌 나의 편으로 만들어야 하는 하나의 임무가 되었다. 17세기 산업혁명이 일어났을때 망치로 기계를 다 부셨으면지금까지의 발전을 막을 수 있었을까?시대의 흐름을 따라가는 것은 큰 용기가 필요하지만어쩌면 생존이 달린 문제가 되면 용기고 뭐고 일단 부딪혀 봐야한다. 이전에 Flutter을 공부하면서 습관 앱을 하나 만들어 본 적이 있었다.꼬박 2-3달을 배우고 앱을 만들며 디자인과 테스트까지 모두 나 혼자 도맡..

나를 살아남게 만드는 힘, 회복 탄력성

피할 수 없는 끊임없이 도전하는 삶우리는 태어나는 순간부터 수치에 길들여집니다. 태어나자마자 몸무게를 재고, 성별을 확인하며, 키와 혈액형을 기록함으로써 이 세상에 발자취를 남기기 시작합니다. 우리 자체를 나타내는 그 수치들은 점차 나이가 들어감에 따라 서로의 값들을 비교하면서 경쟁하는 것들이 추가가 되기 시작합니다. 친구의 키가 더 큼에 부러움을 느끼고, 시험 성적이 내가 더 높다는 사실에 뿌듯함을 느끼고, 직장동료보다 인사고과를 더 잘 받기 위해 라인을 타기도 합니다. 그렇게 나를 나타내는 수치들을 기록하게 되면서 우리는 피할 수 없는 경쟁에 뛰어들게 됩니다. 물론 경쟁에 뛰어들지 않아도 됩니다. 전 세계에 의무교육이 있어 어느정도의 교육을 받아야 하고 그 과정에서 순위가 기록되기는 하지만, 우리는 ..

일상 2025.12.15

116. Populating Next Right Pointers in Each Node (Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree)

링크 - https://leetcode.com/problems/populating-next-right-pointers-in-each-node/description/?envType=company&envId=facebook&favoriteSlug=facebook-three-months난이도 - MediumIntuition1) BFS이 문제는 BFS를 통해 풀 수 있다. 우리는 이 Tree가 Perfect binary Tree임을 알고 있으므로, 매번 1, 2, 4, 8,..개의 노드들을 처리해야한다는 것을 알 고 있다. 따라서 이 값을 추적하면서 BFS를 하면 쉽게 문제를 풀 수 있다."""# Definition for a Node.class Node: def __init__(self, val: int..

498. Diagonal Traverse (Array, Matrix, Simulation)

링크 - https://leetcode.com/problems/diagonal-traverse/description/?envType=company&envId=facebook&favoriteSlug=facebook-three-months난이도 - MediumIntuition이 문제는 동작 방식을 이해하면 쉽게 풀 수 있다. 먼저 direction을 1 또는 0으로 설정하게 한다(초기값은 1). 그리고 row와 col이 edge를 만날 경우에는 우리는 그것에 대한 경우의 수를 적어 놓아야 한다.Codeclass Solution: def findDiagonalOrder(self, mat: List[List[int]]) -> List[int]: ans = [] rows = len(..

1216. Valid Palindrome III (String, Dynamic Programming)

링크 - https://leetcode.com/problems/valid-palindrome-iii/description/?envType=company&envId=facebook&favoriteSlug=facebook-three-months난이도 - HardIntuition1) Bottom-Up DP (2D)우리는 2D list DP를 사용해 이 문제를 풀 수 있다. 알고리즘은 다음과 같다.1. 먼저 DP를 nxn 리스트로 만든 뒤, 0으로 초기화 한다.2. i는 n-2부터 0까지, j는 i+1부터 n-1까지 돌린다.3. s[i] == s[j]이면, 우리는 그 사이의 dp값을 그대로 쓰면 되므로 dp[i][j] = dp[i+1][j-1]이 된다.4. s[i] != s[j]이면, 우리는 그 사이의 dp값에..

609. Find Duplicate File in System (Array, Hash Table, String)

링크 - https://leetcode.com/problems/find-duplicate-file-in-system/description/난이도 - MediumIntuitionHash table로 쉽게 풀 수 있는 문제이다. 문제를 잘 이해했다면 어렵지 않을 것이다.1. 먼저 각 path를 " "로 split한다. 첫번째 원소를 directory로 놓고 다음 원소들부터 file_path와 content로 나눠 content를 key, directory + "/" + file_path를 value로 append한다.2. 각 hash table 아이템들을 돌면서 value의 크기가 1 이상인 것들만 ans에 append한다.Codeclass Solution: def findDuplicate(self, ..

905. Sort Array By Parity (Array, Two Pointers, Sorting)

링크 - https://leetcode.com/problems/sort-array-by-parity/description/난이도 - EasyIntuition이 문제는 쉬우므로 in-place변경을 통해 Space complexity가 O(1)로 할 수 있는 방법으로 문제를 풀어보겠다.1. 먼저 left, right를 0, len(nums) - 1로 초기화한다.2. left3. 먼저 nums[left]가 홀수이고 nums[right]가 짝수이면, 둘을 swap한다.4. 아니면 둘 다 홀수이거나 둘 다 짝수, 혹은 nums[left]가 짝수이고 nums[right]가 홀수이다. 이때 nums[left]가 짝수이면 left += 1하고, nums[right]가 홀수이면 right -= 1한다.Codeclass..

15. 3Sum (Array, Two Pointers, Sorting)

링크 - https://leetcode.com/problems/3sum/description/?envType=company&envId=tiktok&favoriteSlug=tiktok-three-months난이도 - MediumIntuition우리는 TwoSum문제를 푼 방식과 같은 방법으로 문제를 풀 수 있다.1. nums를 sort한다. 그다음 nums를 for문으로 돌리면서 num이 0보다 크면 앞의 수들은 다 더해도 0보다 크게 되므로 break를 건다.2. 만약 i == 0 이거나 nums[i-1] != nums[i]이면 TwoSum을 한다.3. j = i+1부터 시작하여 하나씩 올려간다. 만약 -nums[i] - nums[j]가 target에 있다면 ans에 답으로 집어넣는다. 그리고 nums[..