본문 바로가기
반응형

전체 글 395

[LeetCode] 121. Best Time to Buy and Sell Stock - 자바스크립트 [ 문제 ] leetcode.com/problems/best-time-to-buy-and-sell-stock/ Best Time to Buy and Sell Stock - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com [ 아이디어 ] 동적계획법, DP에 대한 문제였습니다. easy 문제답게 DP에서 메모리제이션 기법을 활용해서 문제를 풀 수 있었습니다. Discuss 를 보면 이 문제는 DP가 아니라는 말도 보이지만 기본적인 DP를 설명하기에 좋은 문제가 아닐까.. 2021. 4. 9.
[프로그래머스] 2020 KAKAO 인턴십 > 수식 최대화 - 자바스크립트 문제 설명 programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr [ 아이디어 ] 순열조합을 사용하여 가능한 조합을 모두 뽑아온다음 하나씩 제거하면서 계산함 문제에서 3가지 연산자(+,-,*)만 사용한다고 제한을 두어 조합은 최대 6개밖에 안나와서 순열조합을 쓰지않고 일일히 조합을 만드는 방법도 있지만 연습이니깐 순열조합을 사용해봤음 [ 코드 ] function solution(expression) { let answer = 0.. 2021. 4. 7.
[무협판타지]요절할 대공자는 오래 살고 싶다 (완) - 겨울반디 ★★★☆☆ [ 작품 소개 ] "형님, 기침하셨습니까?" "그래, 곧 일어난다." 응? 잠깐, 내가 동생이 있었나? 평범한 가장이었던 내가 무협지 속 대공자가 되었다. 그것도 곧 멸문될 무가의 요절한 대공자로 [ 특징 ] [소설속][회빙환][사공신][무난한 즐거움][완결] 일반 제목부터 강하게 라노벨 느낌이 나는 소설이었지만 라노벨은 아닌 소설 리뷰하겠습니다. 일단 전체적으로 무난합니다. 현대에서 무협지 속 대공자로 들어가서 적당한 기연을 얻고 나보다 뛰어낸 동생을 둔 주인공(극중 사공신)입니다. 독안광룡 괴자운, 소검후 설리 등 주변 인물들도 매력적이고 크고 작은 에피소드들도 어느 하나 안좋은게 없이 즐겁습니다. 다만 본래 소설의 진주인공이었던 주작패검왕 여극천, 그리고 벌어진 큰 전쟁인 열왕대전 등 메인 에피소드.. 2021. 4. 7.
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT > 문자열 압축 - 자바스크립트 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘.. 2021. 4. 3.
[자바스크립트] 자바스크립트의 동작에 대하여 #2(V8 엔진, 최적화 팁 5개) 2021.03.26 - [개발/자바스크립트] - [자바스크립트] 자바스크립트의 동작에 대하여 #1(feat.엔진, 런타임, 콜스택) 다음 포스트 V8 엔진, 최적화 팁 5개에 대해 추가적으로 살펴보겠다. 일단 이 글은 blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e 를 토대로 작성한 것이다. 우선 자바스크립트의 엔진에 대해 살펴보기 전에 브라우저의 전체 구조를 한번 살펴보겠습니다. 사용자 인터페이스(UI) 레이어는 인터넷 창을 딱 열었을 때 보이는 상단 레이어다. 주소창, 뒤로 가기, 앞으로 가기, 새로고침, 북마크, 환경설정과 같은 UI가 해당된다.. 2021. 3. 29.
[역사판타지] 슬기로운 조선생활 (완) - 그너머 ★★★☆☆ [ 작품 소개 ] 하필이면 가장 어지러운 시절인 1880년(고종 17년).... 그냥 행복하게 살고 싶었다. 솔까! 친일만 잘하고 살아도 자손대대 잘 살수 있지... 그렇게 슬기롭게 살고 싶었는데..... 운명이란 놈은 날 가만히 놔두질 않네? [ 특징 ] [관심법][화끈][암기능력max][구한말][빙의][조선캐리] 무난무난한 즐거움, 화끈한 대체역사를 보여준 소설 '슬기로운 조선생활'에 대한 리뷰를 시작하겠습니다. 일단 대체역사소설의 클리셰 특이능력중에 암기능력max 와 관심법을 가지고 시작합니다. 암기능력 max 는 주인공이 빙의하기 전에 봤던 모든 지식을 기억하게 되는 것이고 관심법은 눈을 지긋이 바라보면 해당 인물의 속마음을 들여다볼수 있는 사기 능력입니다. 이 두개를 가지고 구한말 땅부자의 아들.. 2021. 3. 29.
[자바스크립트] 자바스크립트의 동작에 대하여 #1(feat.엔진, 런타임, 콜스택) 저번에 인터뷰의 질문 '자바스크립트는 어떻게 동작하는가?'에 대한 답을 해보았다. [인터뷰] 자바스크립트의 내부 동작 원리에 대해서 설명하라 자바스크립트... 처음 입사하고 맞이한 이 친구,,, 일 년을 넘게 보고 있자니 이젠 익숙을 넘어 친근하기까지 한 언어가 되어버렸다. 하지만 이제껏 내부 구조를 살펴볼 생각보다는 var 부터 선언 all-dev-kang.tistory.com 그래서 이번에는 좀 더 깊숙이 들어가 보고자 한다. 일단 이 글은 blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf 를 토대로 작성한 것이다. 자바스크립트가 단일 쓰레드(single-threaded)이고 콜백 큐(callback queue)를 이.. 2021. 3. 26.
[자바스크립트] 배열의 마지막 요소를 가져오는 방법에 대하여 이번 포스트에서는 배열의 마지막 요소를 가져오는 방법에 대해 알아보도록 하겠다. 파이썬의 경우 배열의 마지막 요소는 array[-1]로 가져올 수 있다. 과연 자바스크립트에서도 동작할까? let array = [0,1,2,3,4]; console.log(array[-1]); // undefined 안된다. 이로써 가장 간단한 방법이라고 생각했던 것이 안된다. 그러면 길이를 계산해서 마지막 요소를 가져오는 방법이 있다. let array = [0,1,2,3,4]; console.log(array[array.length -1]); // 4 아주 깔끔하다. 추가로 다른 방법이 있나 더 찾아보도록 하자. 아래는 stackoverflow에 올라온 질문에 대한 답이다. Selecting last element in.. 2021. 3. 26.
[프로그래머스] 해시> 베스트앨범 - 자바스크립트 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니.. 2021. 3. 24.
[자바스크립트] Array.sort()에 대하여 (feat, 브라우저) 이번 포스트에서는 자바스크립트의 sort에 대해서 알아보고 브라우저별로 속도를 비교해보겠다. 일단 자바스크립트의 sort는 말 그대로 정렬해주는 것이다. 간단한 예를 봐보자 const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // expected output: Array ["Dec", "Feb", "Jan", "March"] const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // expected output: Array [1, 100000, 21, 30, 4] 코드로 보다시피 대상이 되는 배열을 정렬하는 것이다. 근데 정렬된 .. 2021. 3. 23.
[현대판타지] 전지적 독자 시점 (완) - 싱숑 ★★★★★ [오직 나만이, 이 세계의 결말을 알고 있다.] 무려 3149편에 달하는 장편 판타지 소설, '멸망한 세계에서 살아남는 세 가지 방법'이 현실이 되어버렸다. 그리고 그 작품을 완독한 이는 단 한 명뿐이었다. [소설][아포칼립스물][이야기][김독자][전독시][멸살법][성좌][BJ] 오랜만에 정말 정말 멋진 소설을 완독했습니다. 아포칼립스물이 이렇게 깔끔하고 아름답게 완결이 날 수 있을지, 또 에피소드 이후의 등장인물들이 어떻게 지내고 있을지 끝까지 궁금증을 자아냅니다. 일단 이 소설은 트렌디한 소설의 융합체입니다. 회귀, 성좌, 빙의, 환생, 차원이동, 아포칼림스 왠만한 현대소설에 메인 특징으로 가져갈 요소들이 모조리 때려박았습니다. 그럼에도 불구하고!! 각각의 요소들이 매우.. 2021. 3. 22.
[셸 스크립트] 처음 배우는 셸 스크립트 - 장현정 지은이 : 장현정 [ 진입 ] 이번 달 서평단 숙제가 왔다. 신청한 책중에 가장 원하지 않던 책이 왔다. ㅜㅜ 원하지 않은 이유는 한 가지, 셸 스크립트는 할 줄 모르기 때문이다. 근데 써봤다. 이 아이러니한 상황 덕분에 셸 스크립트에 대한 두려움이 있었다. 할 줄 모르기에 다른 사람이 만들어 놓은 스크립트 파일을 써왔다. 나한테 딱 맞는 스크립트가 아님에도 써왔다. 왜냐 셸 스크립트를 통해 내가 해야 할 작업들이 자동화되어있기 때문이었다. 이렇듯 셸 스크립트는 스크립트 언어답게 자동화에도 많이 활용되고 나 또한 쓰고 있었을 뿐이다. 이번 책은 뒤부분 3부 예제와 함께 하는 셸 스크립트 활용 편은 보지 못했다. 내가 잘 모르는 분야이기 때문이었다. 셸 스크립트는 알게 되었지만. 시스템 구축, 보안, 클라.. 2021. 3. 19.
[프로그래머스] 연습문제 > 피보나치 수 - 자바스크립트 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 nreturn 3 2 5 5 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5.. 2021. 3. 18.
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT -> 순위 검색 - 자바스크립트 [문제] 지원자가 지원서에 입력한 4가지의 정보와 획득한 코딩테스트 점수를 하나의 문자열로 구성한 값의 배열 info, 개발팀이 궁금해하는 문의조건이 문자열 형태로 담긴 배열 query가 매개변수로 주어질 때, 각 문의조건에 해당하는 사람들의 숫자를 순서대로 배열에 담아 return 하도록 solution 함수를 완성해 주세요. [제한사항] info 배열의 크기는 1 이상 50,000 이하입니다. info 배열 각 원소의 값은 지원자가 지원서에 입력한 4가지 값과 코딩테스트 점수를 합친 "개발언어 직군 경력 소울푸드 점수" 형식입니다. 개발언어는 cpp, java, python 중 하나입니다. 직군은 backend, frontend 중 하나입니다. 경력은 junior, senior 중 하나입니다. 소울푸.. 2021. 3. 17.
[자바스크립트] number 타입에 대하여 들어가며 개발 관련 영상을 보다가 이런 질문이 나왔다. "자바스크립트에서 숫자 타입이 하나뿐인 이유를 설명하시오" 음.. 일단 내가 하는 자바스크립트는 숫자 타입은 number, bigint로 2개인데 잘못됐나 싶었다. 그래서 질문자의 의도를 생각해보니 숫자 타입, 정확히는 number 타입이 하나뿐인 이유를 설명하시오 라고 하니 질문이 이해가 되었고 그에 대한 답을 스스로 해보고자 이번 포스트를 작성하게 되었다. JS의 7개 표준 자료형 일단 최신 ECMAScript 표준에서는 기본형 값에 대해 7개의 타입을 정의하고 있다. 기본 자료형(Primitive) 7가지 : string, number, boolean, undefined,null, symbol, Bigint 여기서 string, number, .. 2021. 3. 17.
[타입스크립트] jest , import svg 할때 생기는 문제점에 대하여 이번 포스트는 정확한 지식이 아닐지도 모른다는 두려움을 가지고 글을 시작하겠습니다.(아직 공부중이라..ㅜㅜ) 타입스크립트로 마이그레이션 하는 도중에 기존에 없었던 테스트 코드를 작성해보자고 마음을 먹고 facebook에서 만든 Jest를 사용해보고자 했습니다. Jest를 선택한 이유는 Jest 홈페이지 첫 화면에 있습니다. ==> 홈페이지( jestjs.io/ ) Babel, Typescipt, Node, React를 제가 사용하고 있기 때문에 제 상황에 아주아주 적절한 테스팅 프레임워크라고 판단했습니다. 이러한 이유로 공식문서를 읽어가며 함수에 대한 테스트 코드를 만들고 이젠 class에 대해 테스트 코드를 만들고 테스트를 실행했는데!! FAIL이 떠버립니다. 안되는 이유는 다양하니 어떤 이유로 안 되.. 2021. 3. 16.
[타입스크립트] 제네릭에 대하여 다음 코드를 한번 살펴보겠습니다. 들어온 number type의 arg를 그대로 돌려주는 함수가 있습니다. function identity(arg : number) : number { return arg; } 근데 number type 뿐만 아니라 string type이라면, 또는 boolean type이라면 어떻게 할까요? function identityNum(arg : number) : number { return arg; } function identityString(arg : string) : string { return arg; } function identityBoolean(arg : boolean) : boolean { return arg; } 이렇게 하나씩 구현을 하는 건 누가 봐도 멍청해.. 2021. 3. 15.
[프로그래머스] 다음 큰 숫자 - 자바스크립트 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 nresult 78 83 15 23 입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자는.. 2021. 3. 12.
[프로그래머스] 이상한 문자 만들기 - 자바스크립트 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 sreturn "try hello world" "TrY HeLlO WoRlD" 입출력 예 설명 "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 .. 2021. 3. 12.
[역사판타지] 게임으로 성군이 되자 (완) - 다물 ★★★★☆ [역사를 플레이하는 성군] 신하의 충성도와 능력치를 볼 수 있는 힘. 그 힘은 군주가 가질 수 있는 최고의 능력이었다. “신궁 이성계? 이 자를 이용해 대륙을 정벌해?” 고려 말, 우왕으로 태어난 게임 기획자 김태천. [게임시스템][대체역사][고려말][우왕][왕우][고려떡상][600화][빙의물] 제가 좋아하는 다물 작가님께서 제가 좋아하는 소재 [게임시스템][대체역사]를 섞은 갓갓작을 집필 하였습니다. 처음 나올 때부터 읽어가고 싶었지만, 계속 감칠맛이 느껴져 완결 때까지 기다리다 시간이 나서 한 번에 쑥 읽었습니다. 600화라는 길이만큼이나 현대 -> 고려 -> 그리고 에필로그 현대의 이야기까지 아주 트렌디한 전개였습니다. 간략한 줄거리는 현대에 사는 게임 개발자 강태천이.. 2021. 3. 10.
[자바스크립트] image, data를 Excel로 내보내기 ( feat.exceljs ) 들어가며 시각화 대시보드를 만드는 팀에 속해있는데, 새로운 기능 개발 요건이 들어왔습니다. 요구된 기능은 아래와 같습니다. 기능 목표 : 대시보드에 있는 차트와 테이블을 Excel 파일로 떨궈주세요. 세부 목표 : 차트와 테이블은 이미지로 넣되, 테이블의 경우 전체 데이터를 보여주세요 이번 글에서는 해당 기능을 위한 간단한 튜토리얼 겸 기능 검토에 대한 이야기입니다. 기능 목표 및 검토 Excel 라이브러리 확인 대시보드에서 차트와 데이블을 Excel로 떨구는 작업이 필요하다고 되어있습니다. 바로 인터넷을 찾아보니 필요한 기능들을 제공하는 라이브러리를 찾아봅니다. 이름 지원여부 주소 excellentexport xlsx, xlx, csv 가능 이미지 안됨 https://github.com/jmaister.. 2021. 3. 9.
[자바스크립트] 구조 분해 할당(destructuring assignment)에 대하여 Let's study Destructuring Assignment in JavaScript 앞써 자바스크립트스러운 코드 스타일에서 비구조화 할당에 대해 알아봤습니다. 2020/11/20 - [개발/자바스크립트] - [자바스크립트]JS다운 코드 스타일 #4. 비구조화 할당 우리가 알다시피 객체와 배열은 가장 많이 쓰이는 자료구조입니다. 과장을 보태자면 이 2가지만 제대로 활용할 줄 알면 자바스크립트의 자료구조는 더 이상 필요 없다고 봐도 될 정도입니다. 그만큼 많이 쓰입니다. 특히 함수에 파라미터로 전달하는 경우 대부분이 객체, 배열, 또는 원시값입니다. 원시값의 경우 하나의 값이라 상관이 없지만 객체, 배열일 경우 불필요하게 모든 데이터들이 넘어갑니다. 물론 코드를 깔끔하거 어썸하게 구현한다면 대부분 상.. 2021. 3. 7.
[자바스크립트] 정규표현식(regex)에 대하여 가끔씩 그럴 때가 있다. 특정 패턴을 지닌 문자열을 찾아내서 처리해야 하는 경우 let s = "my best stock is Apple"; s = s.replace("Apple","Tesla"); console.log(s) //my best stock is Tesla 근데 저렇게 정적인 문자열의 경우는 그냥 직접찾아서 바꾸면 되는데 만약 여러 종류라면 어찌할 건가? 이럴 경우에 필요한 것이 regular expression (regex)이다. 다음과 같이 전화번호들이 있다. let numberList = [ "02-820-1111", "010-1234-1234", "010 1234 1234", "010.1234.1234", "aaa-bbbb-cccc", "0-1-1" ] 근데 보고 있자니 전화번호라는 .. 2021. 3. 1.
[자바스크립트] null 병합 연산자(nullish coalescing operator) ??에 대하여 Let's study nullish coalescing operator(??) 기억하기론 ECMA2015인가 추가됐고, TypeScript에서는 엄청 최근에 추가된 Null 병합 연산자 ?? 에 대해 알아보고자 한다. ?? 연산자는 여러 피연산자들 중에 그 값이 '확정되어 있는 변수'를 찾을 수 있다. 코드로 예시를 보자. let test = undefined ?? null ?? "apple"; console.log(test); // apple let test2 = undefined || null || "amazon"; console.log(test2); // amazon ??연산자 뿐만 아니라 || 연산자 또한 마지막에 있는 apple, amazon를 가져온다. 이것만 보면 굳이 필요할까 싶지만 내가 .. 2021. 2. 28.
[프로그래머스] 2017팁스다운 -> 짝지어 제거하기 - 자바스크립트 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. .. 2021. 2. 28.
[프로그래머스] Summer/Winter Coding(2019) -> 멀쩡한 사각형 - 자바스크립트 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solutio.. 2021. 2. 28.
[프로그래머스] 신규 아이디 추천 , 자바스크립트- 2021 KAKAO BLIND RECRUITMENT 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이.. 2021. 2. 27.
[자바스크립트] 파라미터를 건드려보자. currying 에 대하여 커링 (Currying) 은 프로그래밍 중급 기술이다. 나도 아직 현업에서 제대로 구현해서 "와 너무 편하다, 좋다"라고 느낀 적은 없다. 하지만 쓸 수 있는 상황이 언젠가 오지 않을까 라는 생각만 가지고 배웠다. Currying 은 1967년 Christopher Strachey 가 Haskell Brooks Curry의 이름에서 착안한 것이다. Currying은 여러 개의 인자를 가진 함수를 호출할 경우, 파라미터의 수보다 적은 수의 파라미터를 인자로 받으면 누락된 파라미터를 인자로 받는 기법이다. 또한 커링이라는 개념은 자바스크립트뿐 만 아니라 다른 언어에도 있다. 단지 구현 로직만 다를 뿐이다. 기술적으로 커링은 f(a, b, c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의.. 2021. 2. 22.
[자바스크립트] 객체를 복사하는 다양한 방법에 대하여 자바스크립트의 객체의 복사는 크게 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)로 나눠진다. 다음 예를 보자 let stock = { name : "apple" }; let myStock = stock; console.log(stock.name) // apple console.log(myStock.name) // apple console.log(stock.name == myStock.name) // true console.log(stock.name === myStock.name) //true 우리가 흔히 알고 있듯이, 객체의 변수가 다른 변수에 할당되어 Call by reference (참조) 가 일어났고 한 데이터를 변경하면 같은 참조를 가진 값도 변한다. let stock = {.. 2021. 2. 22.
[인터뷰] 프론트 앤드 인터뷰 질문 ( Feat.VoyagerX ) 내가 가고 싶은 기업 중 하나인 VoyagerX의 인터뷰 질문에 관한 글이다. 학부 3학년 말에 Vrew의 초기 모습을 보고 감명을 받았다. 유저가 불편해하는 부분을 컴퓨터로, 그중에서도 머신러닝을 이용해 해결했다는 점이 참 멋지다고 느꼈다. 그때 나는 친구들과 창업을 했었다. 그래서 여기저기 많은 곳을 쏘아 다녔고 가끔씩 VoyagerX 대표 남세동님이 발표하는 세션을 몇 번 봤었다. 그때 뭔가 알 수 없는 선망을 했었다. 그래서 창업을 했는데도 그냥 면접을 보고 싶다고 메일을 보냈고 실제로 면접을 봤었다. ( 만약 붙었으면 어찌했을까 라는 다소 책임감 없는 상상도 해봤었다 ) 결과부터 말하자면 떨어졌다. 아직 졸업시기도 아닌 나에게 각 파트의 리더님, 그리고 남세동님께서 한 시간 넘게 1대 4로 면접.. 2021. 2. 20.
반응형