-
백준 9047번 6174 [카프리카 수] :: 마이구미알고리즘 풀이/수학 2017. 5. 3. 23:28
이번 글은 백준 알고리즘 문제 9047번 "6174" 를 다뤄본다.문제는 단순히 수학 문제로써, "카프리카 수" 에 관련된 문제가 된다. 9, 45, 55, ( ), 297, 703 에서 ( ) 안에 들어갈 수는? 최근 영재 발굴단 방송에서 문제를 푼 최연소 이태호(10살) 군을 주제로 방영되었다. (답은 99)카프리카 수를 알고 있다면, 쉽게 해결할 수 있는 문제이다. (카프리카 수)보자마자 메모하여 관련 알고리즘 문제를 발견하여 다룰 수 있게 되었다. 9047번 문제는 아래와 같다. 간단한 연산이지만 Kaprekar 는 이 연산이 놀라운 결과를 보여준다는 것을 발견했다. 올해 연도인 2008 로 그 결과를 알아보자. 2008 로 만들 수 있는 가장 큰 수는 8200 이고 가장 작은 수는 0028 이다..
-
Node.js vs Java 구조적 차이 :: 마이구미Nodejs 2017. 4. 30. 23:10
Node.js Architecture - Single Threaded Event Loop 링크를 참고하여 작성된 글이다. 이번 글은 Node.js의 구조를 다뤄본다.단순히 Node.js에 대한 글이 아니기에, 도움이 될만한 글이라 생각하기에 읽고 판단하길 바란다.* Node.js 를 기준으로 작성되었기에, 다소 편중된 느낌을 받을 수 있다. 기본적으로 많은 웹 어플리케이션은 멀티 스레드 기반의 구조를 따른다.간단하게 예를 들자면, Java에서 동시 요청을 처리 하기 위해 멀티 스레드를 이용한다고 생각하면 된다. 하지만 Node.js를 알고 있다면 싱글 스레드를 기반으로 한다고 들어봤을 것이다. 싱글 스레드라면 동시 요청에 대해 비효율적이지 않을까? 의문이 들 수 있다.(완전히 싱글 스레드로 동작 되는건 ..
-
쿠팡, 우리가 혁신하는 이유 - 3부 :: 마이구미책 리뷰 2017. 4. 23. 22:42
1부에서는 쿠팡의 문화에 대해 작성했다. (1부 - 쿠팡의 문화)2부에서는 쿠팡의 전략에 대해 작성했다. (2부 - 쿠팡의 전략)이번 3부에서는 쿠팡의 데이터 경영에 대해 작성하고자한다. 그에 앞서, 19세기 영국의 수리물리학자인 켈빈 경은 측정에 대해 다음과 같은 말을 남겼다."측정하는 것이 아는 것이다." To measure is to know"측정할 수 없는 것은 개선할 수 없다." If you can not measure it, you can not improve it 쿠팡은 비즈니스를 데이터에 기반을 두고 경영한다.이와 같은 말들은 이미 알고 있었거나, 많이 들어봤을 거라 생각한다.그러다보니, 데이터 기반에 대해 부정적인 견해도 있었지만, 사실 본인은 부정적 견해에 대해 이해하지 못했다. 3부에..
-
Array-like objects [javascript] :: 마이구미Javascript 2017. 4. 21. 19:58
이번 글은 자바스크립트에서의 "Array-like objects" 를 다뤄본다.Array-like objects 익숙하지 않는 용어일 수도 있다.그대로 해석하면 배열 같은 객체? 한번 알아보자. 자바스크립트에서 몇몇 객체는 배열처럼 보이지만, 실제로 배열은 아니다.이것이 바로 Array-like objects 라고 불린다. Array-like objects의 조건은 아래와 같다.배열처럼 인덱스로 접근이 가능하고, length 속성이 존재한다.실제 배열의 네이티브 메소드인 push, forEach, indexOf 와 같은 메소드는 존재하지 않는다. (Array Document) Array-like objects의 두가지 예로는 아래와 같다.document.getElementsByClassName() 의 결..
-
백준 14501번 퇴사 [DP] :: 마이구미알고리즘 풀이/동적계획법 2017. 4. 21. 11:14
이 글은 백준 알고리즘 문제 14501번 "퇴사" 를 풀이한다.삼성 SW 역량 테스트의 기출 문제이다.동적계획법을 통해 문제를 해결할 수 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일Ti3511242Pi1020102015402001일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다.상담을 하는데 필요한 기간은 1일보다 클 수 있기 때문에, 모든 상담을 할 수는 없다. 예를 들어서 1일에 상담을 하게 되면, 2일, 3일에 있는 상담은 할 수 없게 된다. 2일에 있는 상담을 하게 되면, 3, 4, 5, 6일에 잡혀있는 상담은 할 수 없다.또한, N+1일 째에는 ..
-
백준 1038번 감소하는 수 :: 마이구미알고리즘 풀이/브루트 포스 2017. 4. 20. 00:17
이번 글은 백준 알고리즘 1038번 문제 "감소하는 수" 를 다뤄본다.문제는 동적계획법으로 접근해야한다. 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 하지만 본인은 도저히 동적계획법으로는 생각나지 않아, 브루트 포스(노가다)로 풀었다.완전한 노가다는 아니라, 불필요한 과정을 제외시킴으로써, 시간 제한을 피할 수 있었다.테스트케이스가 많은 것도 아니고, 노가다로 풀어도 충분히 시간 제한에 걸리지 않을 거..
-
캐시 제어 응답 헤더 설정 :: 마이구미HTTP 2017. 4. 19. 10:35
이번 글은 캐시 제어에 관련된 응답 헤더들을 다뤄본다."HTTP 완벽 가이드" 책과 stackoverflow의 관련 글들을 참고하여 작성하였다. Cache-Control: no-cache, no-store, must-revalidate 위와 같은 헤더들을 통해 캐시를 막을 수 있다.알고 있었다면, 분명 헤더들의 의미 또한 알고 있을 것이다.그렇다면 왜 굳이 3가지 모두를 명시해줘야하는가? 의미를 알고 있다면, 의미상 no-store 만을 명시해줘도 되지 않는가?그렇다면 왜 3가지 모두 명시해줘야하는가?에 대한 의문이 들어, 알아본 결과를 통해 글을 작성하게 되었다. 의문을 해결하기에 앞서, 차근차근 살펴보겠다. 캐시는 불필요한 데이터 전송을 줄임으로써, 많은 효과를 주게 된다.하지만 웹 개발에 있어, 목..
-
쿠팡, 우리가 혁신하는 이유 - 2부 :: 마이구미책 리뷰 2017. 4. 13. 12:39
1부에서는 쿠팡의 문화에 대해 작성했다. (1부 - 쿠팡의 문화)2부에서는 쿠팡의 전략에 대해 작성해보려 한다. 전략에 대해 책에서는 확실히 이해할 수 있도록 쓰여있다.전략이란? 질문에 앞서 하나의 질문은 해본다.회사의 목표는 무엇일까? 답은 '돈을 버는 것' 이라고 나올 것이다.돈을 벌기 위해 무엇을 해야 할까? 이 질문에 대한 답으로 도출되는 것이 전략, 즉 목표를 달성하기 위한 방법이다.회사의 전략에는 그 회사가 비즈니스를 바라보는 관점이 녹아들어가 있다. 쿠팡은 전략을 위해 세 가지만 신경쓰면 된다고 한다.셀렉션 - 파는 물건의 종류프라이스 - 가격컨비니언스 - 편의성1부에서 다룬 쿠팡의 핵심 가치 중 "Wow(감동)" 가 있다.이 가치에 셀렉션, 프라이스, 컨비니언스 3가지 모두 들어간다고 생각..