본문 바로가기

upcurve631

대기업과 스타트업, 보수와 진보, 그리고 정치적 무관심, 내란과 민주주의에 대한 소회 (feat. 토요일 밤에 윤석열 탄핵 🎶) 이 글에 대해서슬랙 대화 중 “대기업 경험은 어떠세요? 성장하는 스타트업 vs 안정적인 대기업?”이라는 질문에서 시작되었다. 당시에는 선뜻 답을 내지 못했지만, 아침 출근길 찬 바람을 맞으며 걷는 중 생각이 꼬리를 물었다. 대기업은 보수와 닮아 있고, 스타트업은 진보와 닮아 있다는 가벼운 단상에서 출발했다. 그러다 노동자로서 우리가 당연하게 여기는 권리들, 그리고 민주주의라는 더 큰 가치에 대한 사유로 점차 확장되었다. 가장 밑에 민주주의라는 가장 큰 틀이 있었다. 최근 2주간 이어진 윤석열 내란 사태는, 당연하게 여겼던 민주주의가 얼마나 당연하지 않을 수 있는 것일지 적나라하게 상기시키는 사건이었다. 국민으로서, 그리고 역사적 증인의 한 사람으로서 정치적 무관심이 어떤 멸망적인 결과를 초래할 수 있는지.. 2024. 12. 14.
백준 5639 이진 검색 트리 (JAVA 자바 풀이) https://www.acmicpc.net/problem/12873 📌 문제 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진 트리이다.노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다.노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다.왼쪽, 오른쪽 서브트리도 이진 검색 트리이다.전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다. 후위 순회 (왼쪽-오른쪽-루트)는 왼쪽 서브트리, 오른쪽 서브트리, 루트 노드 순서대로 키를 출력한다. 예를 들어, 위의 이진 검색 트리의 전위 순회 결과는 50 30 24 5 28 45 98 52 60 이고, 후위 순회 결과는 5 28 24 45 30 .. 2024. 11. 23.
충돌 없는 완벽한 해싱이 존재한다고 ? (퍼펙트 해싱 개념 및 사례, 최적화 방법에 대해서) 이 글의 탄생 배경, 이 글에 대해서코딩 스터디 중 해싱 챕터에서 시간 복잡도를 주제로 이야기할 때였다. 해싱하면 연상되는 이미지는 당연히 "빠르다"였고 나는 당연스럽게 O(1)이지! 라고 생각하며 대화를 이어나갔는데, 한 멤버가 질문했다."어... 해싱도 최악의 경우는 O(n) 아니에요?"어라, 순간 멈칫했다. 사실 해싱에서 최악의 경우는 O(n)이라는 걸 깜빡하고 있었다! 자바에서 해싱을 사용할 때는 충돌 문제를 자동으로 처리해주고, 또 key-value 스토어로서 레디스와 같은 저장소를 사용할 때, 단순히 "빠르다"는 이미지에만 노출되어 있다 보니 당연히 해싱은 O(1)이라고 생각했던 것이다. 문득 기억을 환기시키며 깨달았다. 앗,,, 해싱은 충돌이 없다면 O(1)이지만, 충돌이 발생하면 O(n)이.. 2024. 11. 2.
GPT 복붙만으로 프로그램을 만들 수 있을까? (feat. AI 시대의 개발자, 기묘한 질문들, 그리고 낯설고도 친절한 어떤 존재에 대해서) 이 글에 대해서이 글은 두 가지 파트로 구성됩니다. 첫 번째 파트에서는 ChatGPT를 이용해 단순한 복사 붙여 넣기 만으로 파이썬 프로그램을 만든 실험을 소개합니다. 전투 시뮬레이션 게임에 대한 전문 지식도 파이썬으로 게임을 만들어 본 경험도 없지만, 코드 한 줄 작성하지 않고 GPT만으로 프로그램을 구현하는 과정을 상세히 작성해 보았습니다. 두 번째 파트에서는, 이 과정을 통해 느낀 점과 AI 시대의 개발자라는 주제로 조금 더 깊이 있는 회고와 성찰을 담았습니다. 단순히 AI로 프로그램을 만드는 것을 넘어, AI 시대에 ‘개발자’란 어떤 의미가 있는지, 그 미래에 대해 최근 생각하는 개인적인 견해를 정리해 보았습니다.☘️ PART 1. GPT 복붙만으로 프로그램을 만들 수 있을까?사건의 발단노앤써라는.. 2024. 10. 26.
요세푸스 문제의 마지막 남은 사람을 수학적 귀납법으로 도출한 점화식으로 찾아보자 이 글의 작성 배경요세푸스 문제를 다양한 방법으로 풀어보면서 배열, 큐, 링크드 리스트, 세그먼트 트리 등 여러 알고리즘적 접근을 시도해 보았다. 각 방법에서 최적화를 시도했지만, 시간 복잡도는 여전히 \( O(n^2) \) 정도였고, 세그먼트 트리를 사용해도  \( O(n \log n) \) 이 최대였다. 조금 더 최적화할 방법이 뭔가 있을 것 같은데... 고민하다가 문제를 가상의 순환 구조로 해석하면 어떤 규칙이나 패턴이 존재하지 않을까 하는 의문이 생겼다. 그러던 중, 점화식 풀이법을 알게 되며 이 방식에 주목하게 되었다. 점화식을 활용한 풀이법은 흥미로웠지만, 문제는... 어려웠다. 😭 특히, 이 점화식을 어떻게 유도할 수 있는지, 그 논리적 근거와 직관이 어떻게 도출되는지, 그리고 실제로 이 .. 2024. 10. 13.