Sorting
🚨 ‘이것이 취업을 위한 코딩테스트다’ 교재 정리 정렬정렬을 위한 알고리즘은 여러가지가 있다. 대부분 언어의 라이브러리에는 이미 효율적인 정렬 라이브러리를 제공하고 있지만 기본적으로 정렬 알고리즘의 원리를 이해하고 있는 것도 기업 면접에도 많이 등장하는 문제이기 때문에 중요하다고 한다. 선택 정렬가장 단순하고 직관적으로 떠올릴 수 있는 정렬 방법이다. 배열에서 가장 작은 값을 선택해 차례대로 정렬하는 알고리즘이다. 12345678910data = [3,6,7,1,2,9,10,4,5,8]def selection_sort(): for i in range(len(data)): idx = i for j in range(i,len(data)): if data[idx] > data[j]: idx = j data[idx],data[i] =...
Blogger 에서 Hexo로 전환하기
Blogger에 남겨둔 많은 포스트들을 어떻게 할까 생각했는데 아무래도 앞으로는 계속 Hexo에서 포스팅을 하게 될 것 같아 포스트를 이동시켜야 되겠다는 생각을 했다. Migration 플러그인이 있지 않을까 싶어서 찾아봤는데 역시 있었다!hexo 공식 Migration plugins 하지만 여기 Blogger는 없었다. 그 밖에 처음 찾았던 플러그인은 Blogger to Hexo 로 블로거만을 위한 플러그인이었는데 설치하면서 자꾸 에러를 만나고 설치에 실패했다.. Issues 를 보면 node 버젼이 업데이트 되면서 뭔가 에러가 나는데 수정이 안되는것 같았다. 이번엔 rss를 사용하는 플러그인을 찾았다. 링크 다른 사용자의 블로그 에서 찾은 방법인데 설치는 제대로 되었다. 나도 글쓴분 처럼 import 용 새로운 hexo blog를 만들어서 테스트 해봤다. 123npm install hexo-migrator-rss --savehexo init...
Javascript 30 Day 10
Javascript30 Day10 - Hold Shif and Check Checkboxes프로그램 기능구현해야 하는 기능은 하나의 체크 박스를 선택하고 Shift 키를 누른 상태로 위/아래의 다른 체크 박스를 선택하면 그 사이에 있는 모든 체크 박스가 함께 선택되는 기능이다.이런 기능은 다양한 프로그램에서 사용되는 기능이다. 예를 들어 Gmail에서 여러개의 메일을 선택할 때 등등. 스스로 풀이 도전스스로 해볼 수 있을 것 같아서 강의를 듣기 전에 내가 구현해보려고 했다. 그동안 배웠던 keydown을 사용해서 해봤다. input elements 들을 querySelectorAll로 선택해둔다. forEach를 사용해 각 checkbox들에 click 이벤트를 등록한다. flag 변수를 선언해놓고 click 이벤트 내부에서 keydown이벤트를 또 걸어놓는다. flag 변수가 False 일 경우 이번에 선택 된 엘리먼드의 index를 lastChecked에...
Windows에서 WSL 사용하기
:rotatinglight: _nomadecoders의 윈도우 세팅 강좌 정리 내용 WSL : Windows Subsystem for LinuxWSL은 Windows10 2004 업데이트 부터 지원되는 기능이다. 2020년에 나온 업데이트 버젼인데 왜 이름을 이렇게 붙였는지는 모르겠다.Linux 환경에서 뭔가 설치하는 것은 굉장히 쉽다. 터미널에서 명령어 한줄만 입력하면 알아서 설치가 진행된다. 반면에 Windows는 뭔가 복잡하고 잘 안될 때가 많다. 이런 경우 Linux 명령어를 사용할 수 있게 해주는 것이 WSL이다. WSL을 사용하기 위한 작업들을 해보자.먼저 ‘chocolately’를 사용해볼 수 있다. chocolately 설치 방법먼저 chocolately 공식 홈페이지의 다운로드 링크로 들어간다. 설치 방법이 상세하게 나와있지만 필요한 것은 command문 뿐이다. command문을 복사하고 Windows에서 Power Shell을 관리자 권한 으로 실행하여...
Javascript 30 - Day 9
Javascript30 Day9 - Dev Tools DominationJavascript로 수행하는 동작을 확인하기 위해서는 data들을 콘솔 창에 출력해봐야 한다. 주로 console.log()가 사용되는데 개발에 도움이 되는 비슷한 여러 함수들이 있다. console.log()1console.log('Hello'); 콘솔 창에 인자로 받은 문자열을 그대로 출력한다. 1console.log('Hello, %s',value); %s 키워드를 사용해 값을 문자열에 치환하여 출력할 수도 있다. ES6 문법을 사용하면 아래처럼 쓸 수도 있다. 1console.log(`Hello, ${value}!`); %c 키워드를 사용해 출력 스타일을 지정할 수 있다. 스타일은 기본 css와 같은 문법이다. 1234console.log( "%c I am some great text", ...
[이코테] Greedy - 무지의 먹방 라이브
🚨 ‘이것이 취업을 위한 코딩테스트다’ 교재 정리 2019 카카오 신입 공채 프로그래머스 문제 링크 문제평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다.각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다.무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다.마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다.무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다.다음 음식이란, 아직 남은 음식 중 다음으로 섭취해야 할 가장 가까운 번호의 음식을 말한다.회전판이...
[이코테] Greedy - 만들 수 없는 금액
🚨 ‘이것이 취업을 위한 코딩테스트다’ 교재 정리 문제N개의 동전이 주어질 때 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하시오. 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어진다. ( 1 <= N 1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며 각 자연수는 공백으로 구분된다. 각 화폐 단위는 1,000,000 이하의 자연수이다. 출력 조건 첫째 줄에 주어진 동전들로 만들 수 없는 양의 정수 금액 중 최솟값을 출력한다. 입력 예시입력 1253 2 1 1 9 출력 18 풀이아이디어 target 금액은 1부터 시작하고 화폐 단위는 오름차순 정렬을 수행한다. 화폐단위를 순차적으로 검사하면서 만약 target보다 단위가 작을 경우 해당 target은 만들 수 있다. target을 만들 수 있을 경우, 다음 target은 해당 화폐단위를 더한 값으로 갱신한다. target보다 큰 값이 검사...
Javascript 30 - Day 8
Javascript30 Day8 - Fun with HTML5 CanvasW3C 튜토리얼HTML <canvas> element는 웹 페이지에서 그래픽을 그리기 위해 사용하는 요소이다.아래 캔버스에서 테스트 해볼 수 있다! (우클릭으로 캔버스 비우기) const body = document.querySelector('body'); body.addEventListener("contextmenu", ( e )=> { e.preventDefault(); return false; } ); const canvas = document.querySelector("#draw"); const ctx = canvas.getContext("2d"); ctx.strokeStyle = "#BADA55"; ctx.lineJoin = "round"; ctx.lineCap = "round"; ctx.lineWidth...
Javascript 30 - Day 7
Javascript30 Day7 - Array Cardio Day 2Array 자료형의 유용한 메서드를 공부한다.test data는 아래와 같다. 1234567891011121314const people = [ { name: "Wes", year: 1988 }, { name: "Kait", year: 1986 }, { name: "Irv", year: 1970 }, { name: "Lux", year: 2015 }, ]; const comments = [ { text: "Love this!", id: 523423 }, { text: "Super good", id: 823423...
[Node.js] API 구현하기
APIAPI : Application Programming Interface프로그램은 여러가지 모듈을 이용해 만들어진다. 이러한 라이브러리를 만든 개발자와 이를 사용해 프로그램을 개발하는 개발자 간의 약속을 바로 Interface 라고 부른다. 또한 애플리케이션 프로그램을 만들기 위해 만들어진 약속들을 API라고 부르는 것이다. API는 모든 프로그래밍 언어에 제공된다. 주어진 기능을 잘 활용하는 것이 좋은 프로그램을 만들기 위해서 필요한 역량이 될 것이다. 공식문서 잘 활용하기Node.js 공식 홈페이지로 가면 문서 탭이 있다. 여기서 각 Node.js의 버전에 따른 API 문서를 확인할 수 있고 모듈들의 사용법을 찾아 볼 수 있다. Node.js로 프로그램을 만들 때 가장 먼저 호출하게 되는 http모듈을 살펴보자. http12345var http = require("http");var app = http.createServer(function...