분류 전체보기
[JavaScript] ⌚ JavaScript로 시계만들기
[JavaScript] ⌚ JavaScript로 시계만들기
2019.02.03⌚ Day 2 - JavaScript로 시계만들기JavaScript 30의 두 번째 프로젝트는 '시계 만들기'이다. JavaScript도 사용되지만 CSS 테크닉도 필요한 좋은 프로젝트이다. 😃 HTML 코드1234567891011121314151617181920212223242526272829 clock CLOCK Back to List Javascript30 Day2 Colored by Color Scriptercs 시침, 분침, 초침과 시계 테두리, 시계의 중앙부를 만들었다.😃 CSS코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646..
[프로그래머스] 😎 자동완성 - [3차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 😎 자동완성 - [3차] 2018 카카오 블라인드 채용 / Python
2019.02.03😎 자동완성 - [3차] 2018 카카오 블라인드 채용문제 설명포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다.효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다.예를 들어, 학습된 단어들이 아래와 같을 때gogoneguildgo를 찾을 때 go를 모두 입력해야 한다.gone을 찾을 때 gon 까지 입력해야 한다. (gon이 입력되기 전까지는 go..
[JavaScript] 🎹 JavaScript로 악기 만들기
[JavaScript] 🎹 JavaScript로 악기 만들기
2019.02.02🎹 Day 1 - JavaScript로 악기 만들기 JavaScript 30의 첫 번째 프로젝트는 '드럼 킷 만들기'이다. 특정 키보드 버튼을 누르면 해당하는 드럼 소리가 나와서 연주를 할 수 있는 프로젝트이다. 😃 HTML 코드 SYNTH PIANO A S D F G H J K L ; ' Back to List Javascript30 Day1 😃 JavaScirpt 코드 playSound = e => { const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`); const key = document.querySelector(`li[data-key="${e.keyCode}"]`); if (audio) { audio..
📅 30일간 30개의 JavaScript 프로젝트 도전기 / JavaScript 30
📅 30일간 30개의 JavaScript 프로젝트 도전기 / JavaScript 30
2019.02.02프로그래밍 언어를 가장 빨리 익히는 방법에 여러 방법론이 있지만, 여러가지를 만들어보면서 해당 언어를 체득하는 것이 가장 좋다고 알려져있다. 30일간 Vanilla JS( 프레임워크, 컴파일러, 라이브러리, 보일러 플레이트등이 없는 순수한 자바스크립트 )로 30개의 결과물을 만드는 JAVASCRIPT 30의 목적도 이와 같다.There is no formation without repetition반복 없이는 결과물도 없다JavaScript 30의 이용 방법은 매우 간단하다. 이메일을 이용해 가입하면, Wes Bos의 JavaScript 30 강의를 무료로 들을 수 있다. 유튜브 영상도 올라와있으니, 가입이 귀찮다면 유튜브를 통해 강의를 들어도 된다. 자 이제 매일 JavaScript 프로젝트를 만들며 J..
[Python] 정규 표현식(Regular Expression)
[Python] 정규 표현식(Regular Expression)
2019.02.02정규 표현식(Regular Expression)정규 표현식은 특정한 규칙을 가진 문자열의 패턴을 표현하는 데 사용하는 표현식(Expression)으로 텍스트에서 특정 문자열을 검색하거나 치환할 때 흔히 사용된다. 예를 들어, 웹페이지에서 전화번호나 이메일 주소를 발췌한다거나 로그파일에서 특정 에러메시지가 들어간 라인들을 찾을 때 정규 표현식을 사용하면 쉽게 구현할 수 있다. 정규 표현식은 간단히 정규식, Regex 등으로 불리우곤 한다.파이썬에서의 정규 표현식 사용정규식에서 가장 단순한 것은 특정 문자열을 직접 리터럴로 사용하여 해당 문자열을 검색하는 것이다. 예를 들어, 로그 파일에 "에러 1033" 이라는 문자열을 검색하여 이 문자열이 있으면 이를 출력하고 없으면 None을 리턴하는 경우이다. 이러한..
<스카이 캐슬> ✨ 빛과 그림자
<스카이 캐슬> ✨ 빛과 그림자
2019.02.02이 오늘을 끝으로 막을 내렸다. 생방으로 챙겨본 드라마가 정말 오랫만인데 아쉽게도 모두의 생각과 같이 결말에 대한 실망감을 가져서, 이 글을 써본다. 부모님에게 복수하기 위해 대학 진학을 포기하고, 그에 충격받은 부모는 자살하고 대입이라는 목표만을 바라보는 입시가 만들어낸 괴물에 대한 비판이 을 관통하는 주제이다. 초중반의 김주영의 등장, 이수임과 한서진의 대립, 차민혁의 교육관 등 주제를 잘 타고가며 정확한 메시지를 전달해갔다. 그러나 19화부터 드라마는 이루어 놓았던 모든 것을 포기하는 듯 뻔한 이야기와 좋은 게 좋은 이야기로 노선을 변경한다. 딸의 의대진학을 집착적으로 원하던 한서진은 김주영을 고발하고, 강준상은 과거의 꼰대스러움과 가부장적인 모습이 한 순간에 사라진 모습을 보인다. 이야기의 주된 ..
[프로그래머스] 📁 파일명 정렬 - [3차] 2018 카카오 블라인드 채용 / 파이썬 / python / KAKAO BLIND RECRUITMENT
[프로그래머스] 📁 파일명 정렬 - [3차] 2018 카카오 블라인드 채용 / 파이썬 / python / KAKAO BLIND RECRUITMENT
2019.02.02📁 파일명 정렬 - [3차] 2018 카카오 블라인드 채용 / KAKAO BLIND RECRUITMENT 문제 설명 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 [img12.png, img10.png, img2.png, img1.png]일 경우, 일반적인 정렬은 [img1.png,..
[프로그래머스] 💾 압축 - [3차] 2018 카카오 블라인드 채용 / 파이썬
[프로그래머스] 💾 압축 - [3차] 2018 카카오 블라인드 채용 / 파이썬
2019.02.02💾 압축 - [3차] 2018 카카오 블라인드 채용 / 파이썬 문제 설명 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다. LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 ..
[프로그래머스] 📊 추석 트래픽 - [1차] 2018 카카오 블라인드 채용 / 파이썬 / python / KAKAO BLIND RECRUITMENT
[프로그래머스] 📊 추석 트래픽 - [1차] 2018 카카오 블라인드 채용 / 파이썬 / python / KAKAO BLIND RECRUITMENT
2019.02.01[프로그래머스] 📊 추석 트래픽 - [1차] 2018 카카오 블라인드 채용 / 파이썬 / python / KAKAO BLIND RECRUITMENT 📊 추석 트래픽 문제설명 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다. 입력 형식 solution 함수에 전달되는 lines 배열은 N(1 ≦ N ≦ 2,000)개의 로그 문자열로 되어 있으며, 각 로그 문자열마다 요청에 대한 응답완료시간 S..
[알고리즘] 🤷♂️ 백트래킹 알고리즘 / Backtracking Algorithm
[알고리즘] 🤷♂️ 백트래킹 알고리즘 / Backtracking Algorithm
2019.02.01🤷♂️ 백트래킹(Backtracking) 알고리즘모든 경우의 수를 전부 고려하는 알고리즘으로 트리형 자료구조에 적합하며 계속해서 답이 될 수 있는 후보 노드들을 만들어내고, 해당 후보로는 적절한 답을 얻을 수 없는 후보를 철회("Backtracks")하면서 문제를 해결하는 알고리즘이다. 가장 유명한 예제로는 서로를 공격할 수 없는 8개의 퀸의 위치 배열을 찾는 N-queens 문제가 있다. N-queens 문제를 백트래킹 알고리즘으로 접근하면, 첫 행부터 아래로 내려가면서, 이미 존재하는 퀸에 가로 세로 대각선에 존재하는 후보는 철회하는 방식으로 풀 수 있다. 백트래킹 알고리즘은 '부분적 후보 해결책'의 개념을 확인하는 문제와 그것이 유효한 해결책으로 완성될 수 있는 지의 여부를 상대적으로 빠르게 시험..
[BOJ] 👸 N-Queens / 파이썬
[BOJ] 👸 N-Queens / 파이썬
2019.02.01👸 N-Queens 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 😃 나의 풀이 def nqueen(sol, n): global count if len(sol) == n: # 정답 배열(sol)의 길이가 n과 같아지면, count 증가 count += 1 return 0 candidate = list(range(n)) # 0부터 n-1까지를 후보 배열로 만든다. for i in range(len(sol)): if sol[i] in candid..
[프로그래머스] 🚍 셔틀버스 - [1차] 2018 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
[프로그래머스] 🚍 셔틀버스 - [1차] 2018 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
2019.02.01🚍 셔틀버스 - [1차] 2018 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT 문제 설명 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00에 도착한 셔틀은 자리가 있다면 09:00에 줄을 선 크루도 탈 수 있다. 일찍 나와서 ..