반응형

전체 글 240

[BOJ][9095번] - 1,2,3 더하기

안녕하세요 Dibrary입니다. 이번에는 제가 개인적으로 어려워해서 푸는데 시간이 꽤나 걸린 동적프로그래밍 문제를 풀어보겠습니다. 지금도 까딱하면 동적프로그래밍 '감'을 잃을거 같아서 조심스럽네요... 문제는 아래와 같습니다. 처음에 이 문제를 보자마자 어디서 '생각'이 멈췄냐면 1을 쓰는 것과 2를 쓰는 것의 '순간'을 어떻게 알지? 2 외에 3이 있다다는 것을 어떻게 알지? 이런 생각 때문에 문제를 못 풀었습니다... 그래서 그냥 하염없이 갯수를 세다가 문득 규칙성이 보이길래 좀 더 해봤습니다. 제가 이렇게 '규칙성을 찾아서 문제를 풀어야 한다'는 개념을 알게 된 문제는 아래 문제였습니다. 20500번: Ezreal 여눈부터 가네 ㅈㅈ 문제의 답을 $1\,000\,000\,007$로 나눈 나머지를 출..

[BOJ][5639번] - 이진 검색 트리 (순회 바꾸기)

안녕하세요 Dibrary입니다. 이번에는 이진검색트리에서 '전위순회'한 값 순서가 주어질 때, 이 값을 '후위순회'한 값 순서로 바꾸는 문제입니다. 재귀를 떠올리지 못해서 도대체 어떻게 해야 하나 아주 알머리를 고민했던 문제입니다... 문제는 아래와 같습니다. 제일 먼저 든 생각은 '전위 순회는 어떻게 하는 거였더라~?' 입니다. 전위순회는 루트 먼저 가고 좌, 우 를 방문합니다. 이게 무슨말일까요? 위 문제에서 주어진 예시를 통해 확인해보겠습니다. 먼저 이렇게 3개만 놓고 볼 때, 루트는 50이고, 왼쪽을 먼저 간다고 했으니 30을 방문하겠네요. 다음으로 30을 루트로 놓고 볼 때, 왼쪽 24를 먼저 방문하겠네요. 24를 루트로 놓고 볼 때, 5를 방문하고, 5는 더이상 자식노드가 없죠. 그럴 때 오른..

[Svelte] {#each} 사용할 때 유의점

안녕하세요 Dibrary입니다. 아직 제가 javascript에 익숙하지 않아서 그런지는 모르겠으나, svelte에서 each를 쓰려고 했다가 꽤 시간을 사용한 경험이 있었습니다. svelte에서 정수값을 쓰려고 하면 아래와 같은 에러가 나타납니다. (정수값은 DB에서 가져왔습니다.) 코드는 아래와 같이 단순히 컴포넌트 묶음을 bottleCount라는 변수 갯수 만큼 반복하고 싶었던 것이죠. 근데 제가 Javascript를 공부했을 때 기억나는 반복문은 for문인데, svelte에서 사용하는 반복문은 for문이 아니라 each이고, 흔히 아는 ( ; ; ) 꼴이 아니어서 당황했죠. 마침 Stackoverflow에 관련 글이 올라왔는데, Array( )를 사용해서 배열로 만들어 버리면 그 자체로 itera..

개발자에 대한 개인적인 생각 - 1

안녕하세요 Dibrary입니다. 개발자는 흔히들 컴퓨터를 다루면서 막연하게 굉장히 멋진 삶을 살 거라는 환상을 가진 분들이 있습니다. 그런 개발자도 있겠지만, 사실 모든 개발자가 그렇진 않죠. 그러나 개발자들의 수준, 분야, 차이를 막론하고 '공통적으로 가지는 특성'은 분명히 있다고 생각됩니다. 뭐가 공통적일까요? 저는 2가지는 확실하게 모든 개발자가 동일하다고 생각합니다. 재미삼아 봐주시면 감사하겠습니다. 1. 고시생과 다를바 없는 라이프사이클! 고시생 하면 뭐가 떠오르시나요? 네. 책에 둘러 쌓여서 끊임없이 공부를 해야죠. 특히 고시(지금은 폐지된 사법고시 같은 경우)는 D-day가 정해져 있고, 그 기간 안에 최고의 효율을 낼 수 있어야 하므로 공부 밀도가 엄청나죠. 저는 바로, 이 끊임없이 공부해..

사회생활 2022.06.13

[Scala] 표현식 과 조건문

안녕하세요 Dibrary입니다. 이번에는 표현식과 조건문을 정리해보겠습니다. 먼저 표현식(Expression)이란 '실행 후 값을 반환하는 코드 단위'를 지칭합니다. 값을 반환하기 때문에 함수형 프로그래밍의 기반이 됩니다. 이게 정말 간단한 표현식인 것이죠. amount는 그저 100+10만 반환할 뿐입니다. 그러면 이렇게 하는 것과 무슨 차이가 있느냐 생각이 드실 겁니다. 각각 따로 입력하고 처리해도 같은 결과가 나오니까요. 표현식으로 표현할 경우 'x가 amount를 정의하기 위한 것' 이라는 의도가 보이게 하는 것입니다. 이 '이해'에 차이를 줄 수 있죠. 중괄호 안에 쓸 내용이라면 여러 줄에 걸쳐서도 작성이 가능합니다. 조건문은 if-else를 사용해서 작성이 가능합니다. 먼저 if만 써봤습니다...

[대규모 서비스를 지탱하는 기술] 실제 좌충우돌 실무집

읽게 된 계기 작은 개인 프로젝트나 간단한 프로그램만을 만들고 있는 와중에, 나중에 큰 규모를 맞닥뜨리게 될 경우 어떤 방법으로 생각하고 해결해 나가야 할지 궁금해서. 또한, 본격적으로 제대로 된 효용성 높은 개발을 해 보려면 큰 규모의 회사로 가야 하는데 미리 접함으로써 완충 작용이 될 지식을 습득하기 위해서. 이 책의 특징 전체적으로 서술체라 읽기가 편하다. 또한, 실제 해당 기업이 초반에는 어떤 환경을 갖추고 시작했으나, 어떤 이유로 지금에 이르게끔 인프라를 키워 나갔는지 시간순서에 맞게 원인-결과 방식으로 글이 진행된다. 주로 데이터의 처리에 관련된 내용을 담고 있으며 하드웨어부터 OS, 전략 등을 하나씩 짚어 나간다. 간단 내용 정리 해당 기업은 처음에 간단한 커뮤니티급 을 예상하고, PC 8대..

독서/서평 2022.06.09

[마이크로서비스 개발] MSA 입문으로 최적화된 책

읽게 된 계기 MSA를 좀 이해하기 쉽게 알고 싶어서. 마이크로서비스 패턴이라는 책을 읽긴 했지만, 영 뭔소린지 이해가 잘 안되었다. 또, DDD에 관련된 내용 역시 에릭 에반스 책을 읽어보았지만 아직 이해가 부족하다 싶어서 도움이 될까 싶어서 이 책을 선택했다. 이 책의 특징 MSA의 도입 배경부터 MSA란 무엇인가, 특징, 장점을 설명한다. 그리고 MSA 구조에 왜 DDD가 안성맞춤인지, DDD는 어떤 구성인지, 어떻게 정의해 나가는지를 설명해 나간다. 또, 저자들이 모두 한국인이라는 점이 가장 큰 특징이다. 간단 내용 정리 MSA가 나온 배경을 서술하면서 시작한다. MSA는 휴대용 전자기기의 보급 확대와 함께 엄청나게 많아진 데이터를 처리하면서 동시에 코드의 유지보수도 같이 가져가고자 하는 목적으로..

독서/서평 2022.06.08

파이썬을 사용한 회귀(Regression) 모델

안녕하세요 Dibrary입니다. 이번에는 파이썬을 이용해서 회귀 모형을 확인해 보겠습니다. 회귀는 통계학에서 자주 나오는데, 주어진 데이터를 토대로 선형 모델을 만들어서 해당 데이터 범주 이외의 값을 예측하는 것입니다. 실행 환경은 역시나 Jupyter입니다. 우선 회귀란 무엇인가 간단한 이미지를 보겠습니다. 점들과 직선 하나만 있네요. 저 직선은 점들의 '기준값'의 집합이라고 보시면 됩니다. 여기서 기준값은 평균으로 잡을 수도 있고, 분산으로도 잡을 수도 있고 보고자 하는 통계치를 기준으로 합니다. 즉, 해당 데이터가 저런 직선에 통계치가 근접하니 이 범주외의 값도 이 직선에 근접할 것이다~ 고 예측하는 것이죠. 그럼 먼저 모듈에 있는 데이터를 써보겠습니다. 60개를 가져왔고, print로 X와 y를 ..

파이썬을 사용한 KNN(최근접 이웃) 구현해보기

안녕하세요 Dibrary입니다. 이번에는 KNN을 구현 해 보겠습니다. KNN은 약자이고 K-Nearest Neighbors 즉, 'K개의 근접 이웃'을 의미합니다. 모르는 대상이 있을 때, 그것의 근접에 있는 이웃을 통해 그것이 '어떤' 이웃과 비슷하다~ 는 판정을 컴퓨터가 하는 셈이죠. 저는 Jupyter를 켜고 하겠습니다. 우선 mglearn을 다운로드 하셔야 합니다. pip install mglearn을 하시면 자동으로 됩니다. 이 코드를 입력해서 본 결과는 mglearn에 make_forge라는 데이터의 시각화 입니다. 데이터는 discrete_scatter에 들어가서 표현이 된 것이고, X라는 데이터가 2개의 값을 가지고 있으므로, X[:,0] X[:,1] 로 나타냈고, y가 색상이 다른 특성..

반응형