-
[Node.js] 백준 9657 - 돌게임3 TOP NEW
[Node.js] 백준 9657 - 돌 게임3 이런 게임 이제 그만 접근 필승 전략이 있는지 판단해서 풀기로 했다. 이전에 돌 게임을 풀었던 기억과, 짧은 인풋 -> DP 로 풀어야겠다는 생각. 돌이 i개 있을 때 현재 플레이어 or 상대방 누가 이기는지 판단하면 되는 간단(?)한 문제. 핵심! 내가 이기려면 상대방을 “패배시킬 수 있는 방법(false로 지정함)”이 있어야 한다. 즉 이전 과정에서 하나라도 F가 존재해야, 내가 이길 수 있다. 하지만 TTT 즉 상대방이 전부 이기는 수로 넘겨주면, F 구현 및 정답코드 const fs = require('fs'); const INPUT_PA... Read More
-
직접 필요한 툴을 CLI로 개발해보자 TOP NEW
“새로운 기술을 배울 땐, 그 기술이 왜 탄생했는지부터 알아야 한다.” 1부에서 명세-학습 주도 개발(SLD) 방법론을 소개했고, 그 중심에 있는 툴인 SLD CLI를 Rust로 개발할 것이라고 했다. 이번 2부에서는 왜 러닝 커브 높은 Rust를 굳이 선택했는지, 그리고 Rust의 소유권 개념 앞에서 얼마나 고생했는지 남겨보려고 한다. 1. Node.js를 버리고 Rust를 선택한, 철학적/실용적 이유 CLI 툴 개발에 가장 빠르고 쉬운 선택지는 Node.js였지만, 이번에는 처음으로 적용하는 SLD 개발을 학습 그 자체의 명세로 보았다. 1-1. Rust CLI가 주는 개발 철학의 완성도 SL... Read More
-
명세와 학습을 바탕으로 개발해보자. TOP NEW
“간단하게 설명할 수 없다면 모르는 것이다.” 주의! : 개인 의견 + 개인 학습 방법에 대한 글 입니다. SSAFY 과정을 거치고, 인턴도 해보며 여러가지 기술을 공부하며 늘 마음에 걸렸던 “어떻게 공부할까” 언어는 배운걸 바로 사람들과 대화하며 써보기도 하고, 요즘은 AI랑도 떠들면서 실전 적용을 어느정도 해볼 수 있었다. 하지만 개발은 학습은 학습, 개발은 개발 따로 공부하는 기분이 좀 들었다. (CS / 알고리즘 / 실제 FE/BE 구현 등등) 또한 새로운 기술을 배울 때마다 왜? 라고 물어보기는 하지만, 실제 개발로 들어가면 동작하는 코드로 구현하는데 급급하다보니 질문을 잊기도 했다. 이... Read More
-
[JS 시리즈 1편] 간단 스크립트에서 웹까지, JavaScript의 역사 TOP NEW
본 게시물은 시리즈로 이루어집니다. 들어가며 JavaScript는 단순한 프론트엔드 언어를 넘어, Node, Deno, Bun 과 같은 런타임 까지 아우르며, 다양한 환경에서 사용되는 전 세계 SW 소프트웨어 산업의 큰 부분이 되었습니다. 출처 : Stackoverflow Developer Survey 하지만 지금 우리가 브라우저, Node.js, Deno, Bun 등에서 실행하는 코드 대부분은 법적으로 Oracle의 상표 (JavaScript™) 아래 놓여있습니다. JavaScript가 적혀있다는 이유로 앱이 내려간 적도 있다고 하네요. (8년 전) 본 시리즈 1부에서는 상표권과 ... Read More
-
[Rust] 백준 1047 - 울타리 (N^4 브루트포스 + 그리디) TOP NEW
백준 1047 - 울타리 문제 문제 접근: 울타리의 네 모서리 찍기 근데 하나하나 다 찍어보기. 이 문제의 핵심은 “최소 몇 그루를 베어야” 울타리를 만들 수 있는지 찾는 것. 나무를 베면 재료가 생기고, 남아있는 나무들은 더 작은 직사각형을 만든다. 여기서 약간의 주의점이 있는데 단순히 재료가 긴 나무를 베는 그리디만 써서는 안됨. 직사각형의 크기 자체의 감소 + 적절한 나무를 자르는 전략이 필요. 하지만 하나하나 다 생각하기엔 머리아픔. N = 40 이므로 다 자르자. N^4 정도라면 가능하지 않을까? (4중 for 문) 그래도 혹시 불안해서 노드가 아닌 rust로 했다는건 비밀 따라... Read More
-
[Node.js] [Rust] 백준 24460 - 특별상이라도 받고 싶어 TOP NEW
[Node.js & Rust] 백준 24460 - 특별상이라도 받고 싶어 문제 아. 재귀의 세상. 또 와버렸다. 접근 문제의 규칙이 중요하다. 이 문제의 규칙은 곧 이 문제를 풀기 위한 알고리즘 그 자체라는 사실! 종료 조건 : 영역의 크기가 1 * 1 이라면, 그 칸의 추첨 번호로 당첨 재귀 조건 : N * N 이면 같은 크기의 정사각형 네 개로 나눈다 결합 : 네 구역에서 재귀적으로 뽑힌 네 명의 추첨 번호 중 두 번쨰로 작은 값을 최정 결과로 선택한다. 아. 써있는 그대로 구현하면 되겠다! 라는 방식으로 접근했다. 따라서 구현부는 다음과 같이 나누어진다. 입력과 ... Read More
-
[Node.js] 백준 7576 - 탑 보기 TOP NEW
[Node.js] 백준 7576 - 토마토 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자모양의 상자들의 크기와 익은 토마... Read More
-
[TIL-250917] Python 다시하기 TOP NEW
Python 까먹기 전에 다시. 이런저런 코테 준비 겸, F1과 각종 데이터들에 대해서 조금 경량으로 구현하는 방법은 뭐가 있을까 해서 무리없이 접근 할 수 있을 것 같은 파이썬을 다시 공부하기로 했다. 이번에 도움을 줄 책은 예~전에 사두었던 “자료구조와 함께 배우는 알고리즘 입문” 싸피에서 배웠던 익숙한 내용들과, 해당 내용을 다시 한 번 배우는 느낌으로 차근차근 접근해보려고 한다. 아마 파이썬으로 알고리즘을 풀고 나서, 추후에 같은 문제를 여러가지 언어로 풀어보는 것 또한 하나의 알고리즘 학습이 될 수 있다는 생각이 들어서 바로 트라이 트라이! 아무래도 개인 학습 정리의 성격이 강한 게시물이 될 것 ... Read More
-
댓글을 바꿔보자 TOP NEW
한 줄 요약 되긴 하는데 당장 배포해놓을 방법이 없음. 첫 Rust 프로젝트 - 대충 API 댓글 서버 만들기 진짜로 그러고 싶어요? 네. 진짜로 하고싶어서 해봤음. Rust는 처음이라 cargo new로 프로젝트를 만들었는데 프로젝트 시작하기 cargo new %이름% 와~! 쉽다. 여기까지는 얼마나 어려울지 몰랐지… toml? cargo.toml이라는 파일인데 npm의 package.json 같은 느낌? 프로젝트의 이름 버전 그리고 어떤 라이브러리 (crate 라고 부른다 한다.)를 쓸 건지 여기에 작성한다. 대충 이런 느낌 [package] name = "comment-api"... Read More
-
페이지네이션으로 바꿔보자 TOP NEW
그냥 페이지에 엄청나게 많은 글이 쏟아진다! Jekyll 블로그를 사용중인데, 글이 많아지는 한편 글이 늘어나는게 싫어서 작성을 아예 안하던것이 생각났다. 하지만 이대로 방치하거나, 외부 사이트로 도망치는건 내 영… 별로니까! 이번 기회에 페이지네이션을 추가했다. 문제 발생 지킬 깃헙 아니 분명 별거 없는 것 처럼 되어있었지만. 작동하지 않는게 아닌가! 시키는대로 잘 _config.yml에 paginate 와 같은 필요한 요소를 잘 넣었지만… 메인 페이지는 여전히 모든 게시물을 보여주고 있고, page2는 레이아웃도 제대로 적용되어있지 않았던 것! Jekyll의 경우 index.markdown 혹은... Read More
