분류 전체보기 117

[독서 프로젝트] 메타인지, 생각의 기술 - 오봉근

AI시대의 필수 역량, 조직과 개인을 위한 능력 향상에 좋은 책. 서론 AI 시대가 너무 빠른 속도로 다가오고 있다.인터넷의 모든 지식을 학습한 AI와 비교해 우리는 어떤 부분에서 강점이 있는가.이미 알고 있는 지식도 훨씬 많고, 새로운 지식도 훨씬 빨리 습득하는, 어찌 보면 인간 역사에 없었던 가장 똑똑한 새로운 인종의 등장이라 봐도 되지 않을까.특히 업무적으로는 신입사원을 대체해 버릴 정도의 지능을 가진 사람으로 봐도 될 것 같다. 요새 코딩을 하다보면, AI 없이는 할 수 없는 수준이다.검색해도 잘 나오지 않는 자료들을 AI는 원래 알고 있던 것처럼 알려준다.구글에 요즘 검색하면 AI로 작성된 글들도 많이 나오고, 딱히 연관되어 있지 않은 글들도 많이 나오는 것 같다.참고할 수 있는 것이 그나마 ..

카테고리 없음 2025.08.02

[독서 프로젝트] 변화하는 세계질서 - 레이 달리오

트럼프를 이해하기 위해 미국을 이해해야 하고,미국을 이해하기 위해 세계 패권을 이해해야 한다는 생각이 들었다.그리고 현재를 이해하고 미래를 예측하기 위해선 역시 과거를 알아야 하겠지. 모든 것을 파악하고 외우면 좋겠지만 관심 있는 주제 중심으로 정리한다. 1. 기축통화로 표시된 부채는 경제의 가장 기본적인 요소가 된다. 현재는 달러이지만 강력한 제국은 150~250년 정도 지속되었다.중간에 커다란 경제, 부채, 정치 사이클이 50~100년간 지속된다.메가-매크로 사이클을 봐야 한다. 그냥 매크로도 아니고 메가~매크로를 봐야 한다.거시적인 부분도 시간을 10년 100년 잡으면 미시적인 부분이 될 수 있다.메가-매크로는 그런 의미에서의 매크로고 결국 사이클을 발견할 수 있었던 레이 달리오다. 기축통화..

카테고리 없음 2025.07.27

[독서 프로젝트] 페이크와 팩트 - 데이비드 로버트 그라임스

내가 좋아하는 종류의 책이다.정보가 너무나도많은 사회다.주장하는 사람은 부지기수고 어떤 것을 받아들여야 하는 것인지 판단하는 것은 항상 어렵다.결국 상반되는 주장을 듣다 보면 가만히 있는 것만이 최선처럼 느껴진다.어떻게 하는 것이 좋을까? 한 쪽의 주장만을 들으며 마음 편하게 생각해도 좋다.아무것도 듣지 않고 소신을 지키며 살아가는 것도 좋다.하지만, 무엇이 진짜고 가짜인지 파악하고, 내 주관을 만들어 내 생각대로 살아가는 것이 가장 중요하지 않을까?결국 내 뚜렷한 주관은 나의 삶의 태도가 될 것이고, 내 삶에 깃들어 나의 가장 큰 자산이 될 것이다.이 책은 1. 진실을 구분하는 방법과 2.우리를 혼란스럽게 하는 것들에 대해 정리한 책이다.가장 마음에 와닿은 내용을 12개로 정리했다.1. 부적절한 명제..

카테고리 없음 2025.07.26

주식 투자 프로젝트 - Python 으로 오늘의 주가 끌어오기

1. 최종 목표최종 목표는 자동매매 프로그램을 돌리는 것이었다.하지만 기계에 특정 기법을 맡겨두고 그대로 돌리는 것은 망할 확률이 높다고 판단,투자 분석과 경험을 쌓고 나만의 원칙을 프로그램으로 돌리는 것으로 노선을 변경했다.뭔지는 알아야 원칙을 마련할 수 있다는 관점. 따라서 중간 목표는 국내 주식 분석.분석 범위는 시황, 자체 기업 평가, 국내 시장, 글로벌 경제 시황, 사이클 등 거시적 무언가차트 분석은 직접 차트를 볼 수 있는 HTS 나 MTS 참고하며 하기로. 2. 툴 선택데이터 분석에 용이하고 가장 쉽고 빠르게(시간이 덜 들어가도록) 사용할 수 있는 것은 어찌어찌 해도 파이썬.특히 이 영역에서 가장 많은 라이브러리를 만들어둔 곳은 파이썬이 아닐까 직접 api를 다 찾고 찔러도 되겠지만 역시 남..

카테고리 없음 2025.07.26

백준 2294 동전 - C++

동전이 최소가 되도록 n 가지 동전을 이용해 k 원을 만든다. n이 100가지이고 10만 보다 작거나 같은 가치이며, k는 1만 원 이하이다. 사용한 동전의 구성이 같은데 순서가 다르면 같은 경우이다. -> 순열이 아닌 조합으로 풀 수 있다. 가치가 같은 동전이 여러 개 있을 수 있으므로 중복된 검색은 피할 수 있다. k원을 만들었을 때 동전의 최소 개수만 알면 되므로 Dynamic Programming 을 이용한다. 1. dp 배열 정의) dp[k] = k 원 일때 사용한 최소 동전의 개수로 정의한다. 2. 기저사례) dp[0] = 0, dp[동전 1개 가치] = 1 이 기저 사례이다. 3. 점화식) dp[i] = max(dp[i], dp[i - 동전 1개 가치] + 1) 개이다. #include #i..

알고리즘 2023.04.12

역사의 저편으로 사라진 구글 코드잼 같은 코딩 대회를 참여해보자 - Codeforces

Codeforces Codeforces codeforces.com 구글 코드잼이 2023년을 마지막으로 사라집니다... 더 이상 훌륭한 사람들을 뽑으러 큰 대회를 진행할 필요가 없을 정도로 구글의 위상이 높아지기도 했고, 코드잼 자체를 비용으로 생각하게 되었기 때문에 힘들어지는 지금 시기에 대규모 lay off와 더불어 사라진 것 같네요. 그래서 상시 대회가 열리는 codeforces 로 가보도록 합시다. 이미 꽤나 역사가 되었기 때문에 꽤나 공신력이 있습니다. 백준처럼 남의 코드를 제출해도 랭크가 오르는 것과는 다르게 특정 요일 특정 시간에만 풀 수 있는 대회가 열리고, 빠르고 정확하게 풀수록 랭크가 많이 오릅니다. 회원가입/로그인을 하고 메인에 들어가봅시다. 무슨 페이지인지도 모르겠네요 ㅋㅋ 자세히 ..

알고리즘 2023.04.08

백준2143 두 배열의 합 - C++

두 배열을 주고, 두 배열의 연속된 부분집합의 합이 특정 숫자 T를 만족하는 개수를 찾으란다.. T 는 -10억 ~ 10억이고 A, B 배열은 1000개 까지 있다. 각 배열의 값은 -1백만 ~ 1백만이다. 일단 배열의 부분집합수만 해도 Sigma(1000) 이니 각 50만개가 넘는다. 두 개 결합하는 경우의 수는 50만 x 50만이므로 2초 안에 불가능하므로 필요한 경우만 빠르게 찾는 것이 목표다. 나는 두 가지를 이용해서 간편하게 풀길 원했다. 1. presum 2. lower bound, upper bound 문제에서 연속된 부분집합만을 요구하므로 미리 구간합을 계산하여 가지고 있을 수 있다. 예를 들어, A 가 [1,2,3,4,5] 라면 presum = [1, 2, 3, 4, 5, 1+2, 2+3..

알고리즘 2023.04.08

백준2096 내려가기 - C++

최소값/최대값을 구하는 dp 문제이다. 다만 이 경우에 메모리가 4MB 가 한정되어 있으므로 최소한의 메모리를 사용하면 된다. N 이 10만이고 3칸이므로 30만 x int = 1.2MB 정도를 차지하므로 dp 10만 짜리 배열을 하나 추가로 쓰거나 할 수 있지만 ladder 1 x 3 하나와 dp 2 x 3 2개로도 풀 수 있다. 귀찮아서 ladder 는 그냥 다 받기로 했다. 사다리는 다음과 같이 작동한다. 1 2 3 4 5 6 이 있을 때, 1번은 4, 5 번, 2번은 4,5,6번 3번은 5,6 번으로만 내려갈 수 있으므로 4번의 최댓값은 max(1번 + 4번, 2번 + 4번) 이고, 최소값은 min(1번 + 4번, 2번 + 4번) 이다. 5번의 최댓값은 max(1번 + 5번, 2번 + 5번, 3번..

알고리즘 2023.04.05

백준2188 축사 배정 - C++

소가 들어가고 싶은 축사가 정해져있고, 한 축사에 한 마리씩 넣으면 된다. 최대유량이나 이분매칭으로 구하면 된다. 훨씬 간단한 이분매칭으로 풀었다. 소 그룹을 A, 축사 그룹을 B 라고 뒀을 때, 소 3마리, 축사 4개가 있고 S1 = [ 1, 2, 3 ] S2 = [ 1, 2, 3, 4 ] S3 = [ 2, 3, 4 ] 일 때를 생각해보자. 그럼 그래프를 다음과 같이 그릴 수 있다.소 1번부터 차례대로 원하는 축사를 고른다고 생각해보자. 1번 소가 1번 축사를 고른다. 그 후 2번 소가 고를 차롄데 2번 소도 1번을 가고 싶다. 그럼 2번 소를 1번 축사에 넣고 1번 소를 1번이 아닌 다른 가고 싶은 축사 2번에 넣는다. 그 후 3번 소가 고를 차롄데 3번 소는 2번이 가고 싶다. 3번 소를 2번에 넣..

알고리즘 2023.04.04

백준3687 성냥개비 - C++

보기에는 간단한데 생각보다 난이도가 높은 문제이다. 가장 작은 수는 dp로, max는 그리디로 접근한다. #include #include int t, n; char max[102]; long long dp[101]; //성냥 개수 있을때 만들 수 있는 최대 수 char GreedyMax[8] = { 0x0,0x0,'1', '7', '4', '5','9','8' }; long long min[9] = { 0,0,1,7,4,2,0,8,10 }; void makeMax(int n,int idx) { if (n == 0) { return; } if (n % 2) { max[idx] = GreedyMax[3]; makeMax(n - 3, idx + 1); } else{ max[idx] = GreedyMax[2];..

알고리즘 2023.04.03