분류 전체보기 18

[게임] 레이튼 교수와 이상한 마을

플랫폼: 닌텐도장르: 퍼즐출시년도: 2008년총평: ★ ★ ★ ★ ★ 레이튼 교수 시리즈(악마의 상자, 최후의 시간여행) 중 가장 처음 나온 작품이다. 레이튼 교수의 추리하는 과정을 따라가며 단서를 모으거나 새로운 방을 해금할 때마다 수수께끼를 풀어야 하는 특징을 가지고 있다. 웃기게도, 모든 대화의 주제가 수수께끼로 귀결된다. 다음과 같이 말이다.루크: 교수님! 양초에요!레이튼: 루크, 양초에 대한 수수께끼가 있는데 풀어보겠나?  그래서 게임을 해보면 퍼즐 책을 하나 사서 읽는 듯한 느낌도 든다. 최대한 많은 양의 수수께끼를 게임에 녹여내기 위해서 부자연스러워도 이런 방식을 용기 있게 적용한 것 같다. 가끔씩 넌센스 문제들도 나와서 플레이어를 당황하게 만드는 것도 하나의 포인트이다. 스토리도 밋밋하지 ..

작품감상 2025.04.13

취미 독학러 베이시스트로 4년간의 여정, 그리고 추천곡

베이스를 왜 시작했을까? 때는 4년 전, 코로나 걸려서 기숙사에서 나와 본가에서 쉬던 때였던 것 같다. 하필 기말고사 기간이랑 겹쳐서 아픈 와중에 밤새가면서 네트워크 시험을 준비했었다. 그렇게 정신이 해롱해롱한 와중 당시 베이스 유튜브들에 동기를 크게 받아서 '지금 안하면 언제 하겠어?' 하는 생각으로 네이버 최저가로 장비를 구매하였다. 스타트 장비는 다음과 같이 구성했다.베이스 기타: Sire V3오디오 인터페이스: Audient ID4DAW: Cakkewalk헤드셋: 소니 hear.on 2연습할 곳도 없어서 당시 생활하던 좁은 기숙사에서 같이 살던 친구 양해를 구하고 쳤었다. 베이스니까 옆방에 안들리겠지 했지만 슬랩도 했으니 많은 부분 들렸을 거라 생각한다. 이 당시 별다른 불만을 표시하지 않은 옆방..

일상 2025.04.10

[LeetCode] 134. Gas Station - 풀이

난이도: Normal총평: O(n) 풀이를 생각해내기 힘들다. 풀이는 https://leetcode.com/problems/gas-station/editorial 을 보았다.문제 설명n개의 가스 스테이션이 원형의 경로를 따라 배치되어 있다. i번째 가스 스테이션에는 gas[i] 만큼의 가스가 있다.당신은 무제한의 가스가 들어가는 탱크가 탑재된 차로 원형의 경로를 따라 여행을 하려고 한다. 이 때, i번째 가스 스테이션에서 (i+1)번째 가스 스테이션으로 이동하는데 cost[i] 만큼의 가스가 필요하다. 빈 가스 탱크를 가지고 경로에 있는 가스 스테이션 중에 하나에서 출발할 수 있다.gas와 cost로 이루어진 두 배열이 주어졌을 때, 어떤 가스 스테이션에서 출발해야 시계방향으로 한 바퀴 돌 수 있을까? ..

LeetCode 2025.03.05

[LeetCode] 135. Candy - 풀이와 증명

Candy총평: O(n)짜리 풀이가 생각하기 힘들다. 특정 유형을 적용해서 푸는 문제라기보다는 직접 관찰하고 알고리즘을 설계하는 게 중요한 편에 속한다.난이도: Hard문제 설명There are n children standing in a line. Each child is assigned a rating value given in the integer array ratings.You are giving candies to these children subjected to the following requirements:Each child must have at least one candy.Children with a higher rating get more candies than their neighb..

LeetCode 2025.03.02

Go의 메모리 관리 방식 (Stack vs. Heap)

Go의 문법은 단순하지만 가끔씩 변수가 스택에 저장되는지, 힙에 저장되는지 불명확할 때가 있다. 프로그래밍을 하면서 메모리 관련 버그가 발생할지 불안감에 휩싸일 수도 있다. 우선 간단하게 스택과 힙에 대해 짚고 넘어가보자. 이들은 메모리 공간에서 서로 겹치지 않는 독립된 기능을 수행하는 영역이다.스택은 무엇인가?스택은 프로그램의 각 쓰레드에게 하나씩 할당된 공간으로, 함수의 call frame을 저장하는 데에 사용한다. 이 call frame에는 로컬 변수, 함수 파라미터, 함수 콜의 리턴 주소가 저장되어 있다. 함수가 새로 호출될 때 스택에 새로운 프레임이 생기고, 함수가 종료될 때 그 프레임을 스택에서 제거한다 (함수의 호출 규약). 스택의 장점 중 하나는 접근 속도가 빠르다는 점이다. 스택은 최근 ..

[LeetCode] 11. Container With Most Water - 풀이와 증명

문제 설명다음과 같이 막대가 일정 간격으로 배치되어 있다. 이 중 가장 많은 물을 담을 수 있는 컨테이너를 두 개의 막대를 이용해서 만드려고 한다. 이 때 들어가는 최대 물의 양은 얼마인가?풀이가장 기본적인 접근은 모든 막대 쌍을 brute-force로 완전 탐색하는 방법으로, O(n2)O(n^2)만큼의 시간이 걸린다. 이것을 더 빠르게 작동하도록 계산할 수 있을까? 이 문제는 탐욕법을 통해서 O(n) 안에 푸는 알고리즘으로 해결 가능하다. (아직까지 탐욕법으로 접근해야 하는 이유에 대해서는 명확히 찾지 못하였다) 알고리즘은 다음과 같다:1. 두 막대로 첫 번째 막대와 마지막 막대를 이용했을 때로 문제를 처음 시작한다.2. 두 막대 중 짧은 쪽을 선택한다.3. 선택한 막대 안쪽으로 한 칸씩 순회하며 그 막..

LeetCode 2025.02.05

이 문제는 얼마나 어려울까? P, NP, NP-hard, NP-complete의 의미

알고리즘은 주어진 문제를 빠르게 해결할 수 있는 컴퓨터를 활용한 문제해결기법이다. 어떤 문제가 주어졌을 때,제안한 알고리즘이 얼마나 빠르게 작동하는가?이론적으로 해당 문제는 알고리즘으로 어디까지 최적화가 가능할까?지금 내가 생각한 알고리즘이 과연 최선일까?의 질문들이 나올 수 밖에 없다. P, NP, NP-hard, NP-complete와 같은 용어들은 해당 문제가 얼마나 어려운지에 대한 분류를 제시해서 알고리즘 최적화의 방향을 알려준다. 결정 문제P와 NP는 기본적으로 결정 문제라는 분류의 컴퓨팅 문제를 대상으로 하는 분류 체계이다. 결정 문제는 YES/NO로 답이 정해진 경우로 다음과 같은 예시가 있다:주어진 숫자열이 정렬되어 있는가?그래프에서 주어진 path가 모든 점들을 지나는 최단 경로인가?어떤..

미움받을 용기: 인간관계와 인생의 목표

미움받을 용기이런 그의 고민에 “인간은 변할 수 있고, 누구나 행복해 질 수 있다. 단 그러기 위해서는 ‘용기’가 필요하다”고 말한 철학자가 있다. 바로 프로이트, 융과 함께 ‘심리학의 3대 거장’으로 일컬어지고 있는 알프레드 아들러다. 『미움받을 용기』는 아들러 심리학에 관한 일본의 1인자 철학자 기시미 이치로와 베스트셀러 작가인 고가 후미타케의 저서로, 아들러의 심리학을 ‘대화체’로 쉽고 맛깔나게 정리하고 있다. 아들러 심리학을 공부한 철학자와 세상에 부정적저자기시미 이치로, 고가 후미타케출판인플루엔셜출판일2014.11.17 나는 왜 현재의 모습을 가지게 되었고, 변하고 싶으면서도 변하지 못하는 것일까? 는 3대 정신분석학자 중 아들러 심리학을 통해 자신의 상태를 어떻게 진단하고 나아가야 할 지 알려..

작품감상 2025.02.03

개미 군집 알고리즘: 개미의 먹이 탐색으로부터 영감을 받다

개미는 인간과 닮았다. 아니, 어쩌면 인간이 개미를 닮은 것인지도 모른다. 베르나르 베르베르의 《개미》는 단순한 곤충의 이야기를 넘어선다. 그 속에서 우리는 개미 군집의 조직력, 생존 전략, 그리고 협업의 아름다움을 발견한다. 수많은 개체가 하나의 목표를 위해 움직이는 모습은 단순히 생물학적인 호기심을 넘어 인간 사회에도 깊은 영감을 준다. 개미 군집 알고리즘은 바로 이러한 개미들의 행동에서 영감을 받아 탄생한 과학적 기법이다. 자연에서 관찰되는 개미의 길 찾기, 자원 배분, 문제 해결 방식이 오늘날 컴퓨터 과학과 최적화 문제를 해결하는 데 혁신적인 방법론으로 자리 잡았다. 이 글에서는 개미 군집 알고리즘(Ant Colony Optimization, ACO)의 매력을 탐구하며, 자연이 우리에게 준 또 하..

DNS의 역할: www.youtube.com에 접속하면 발생하는 일과 dig 명령

내 컴퓨터로 유튜브를 접속하는 상황을 생각해보자. 세상의 모든 컴퓨터가 연결되어 있는 인터넷 세상에서, 어떻게 내 컴퓨터는 유튜브 서비스를 제공하는 웹 서버를 선택해서 패킷을 주고받을 수 있을까? 우리가 우편물을 주고받을 때 물리 주소를 쓰는 것처럼, 컴퓨터 간의 네트워킹에서는 IP 주소라는 통일된 주소를 사용한다. 121.7.106.83와 같이 점으로 구분된 4개의 숫자이다. 이론적으로는 이 숫자들만 있어도 인터넷을 이용하는 데에는 문제가 없다. 하지만, 유튜브, 페이스북, 네이버 등등 다양한 서비스를 이용할 때마다 이 숫자를 외워서 활용하기도 쉽지 않고, 현실에서 이사하는 것처럼 웹 서버의 IP주소 변경될 때마다 사용자한테 알리기도 곤란할 것이다. 그래서 hostname으로 고유의 식별자로 네트워킹 ..