규도자 블로그
[프로그래머스/Level2/파이썬3(python3)] 땅따먹기 문제 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution ..
[프로그래머스/Level2/파이썬3(python3)] 압축 문제 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다. LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 사전의 색..
macOS에서 ELK stack 구성하기 (elasticsearch) 그냥 brew install로 무지성 설치를 하려니 안되더라. 해서 내가 삽질한 내용과 더불어 다른 사람들은 헤매지 않길 바라며 기록해둘 요량이다. 먼저 현재(2022년 2월 27일) brew search elasticsearch 하면 나오는 내용이다. $ brew search elasticsearch ==> Formulae elasticsearch elasticsearch@6 ShellCopy 깔아보자. $ elasticsearch -V warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release W..
과연 여기서 말하는 강한 온도는 높은 온도를 의미하는 것인가, 낮은 온도를 의미하는 것인가. 숫자가 온도를 의미하는 것인가 아니면 강도를 의미하는 것인가. 여기서 강도를 의미하는 것이라면 높은게 강도가 높은 것인가 낮은게 강도가 높은 것인가. 또 이 강도가 높은 게 온도가 높은 것인가, 강도가 낮은 게 온도가 높은 것인가. 온도를 강하게 하려면 저 화살표 방향으로 돌리라는 것인가 아니면 상단의 화살표가 거기에 존재할 때 온도가 강하게 설정돼있다는 것인가. 진짜 그 어떤 정보도 도움이 되지 않는 최악의 UI가 아닐까. 결국엔 UX로 해결해야한다. 성에제거가 곧 높은 온도를 의미하는 것이니 온도를 낮추려면 성에제거로 갈 수 있는 방향의 반댓방향으로 돌리면 되고, 온도를 높이려면 성에제거방향으로 가면 된다.
django로 github actions찍먹해보기 github actions라고 요즘 핫한 친구가 있다. 간단하게 말하자면 github actions를 설정한 저장소에 특정 이벤트가 일어나면(push를 했을 때나 정해진 시간 등) 정해놓은 워크플로우를 자동으로 실행하게 해주는 기능이다. 일종의 CI/CD작업을 깃허브에서 실행하게 만들 수도 있는 셈이다. 그래서 보통 jenkins에서 수행하던 CI작업을 github actions로 많이 옮기는 추세이다. 허나 완전한 무료는 아니라는 걸(2,000 Actions minute/month FREE) 알아둬야 한다. github에서 직접 지원하는 기능일 뿐더러 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 ..
[macOS] kubectl, kustomize, minukube설치하기 $ brew install kubectl kustomize minikube $ kubectl version Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"22"..