분류 전체보기 218

[프로그래머스] 문자열 압축 (JavaScript)

문제 프로그래머스 2020 KAKAO BLIND RECRUITMENT 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 1부터 문자열 크기의 절반 개수까지인 i개 단위로 모두 압축해본다. j는 i부터 시작하는데, j-i부터 i개의 문자와 j부터 i개의 문자가 같으면 압축이 가능하다. 압축이 가능하면 카운터를 1 증가시킨다. 만약 압축이 안된다면..

[프로그래머스] 크레인 인형뽑기 게임 (JavaScript)

문제 프로그래머스 2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 언어 자바스크립트(JavaScript) 접근방법 주어진 input에 따라 인형을 뽑는다. 격자에서 위에서 차례대로 0이 나오지 않을 때까지 찾는다. 0이 아닌 숫자가 나오면 인형을 뽑는다. 뽑은 인형이 바구니에 있는 인형과 같으면 둘다 터트린다. 뽑은 인형이 바구니에 있는 인형과 다르면 바구니에 넣는다. 코드 fu..

[프로그래머스] [1차] 다트 게임 (JavaScript)

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 다트게임 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 다트 숫자가 10인 경우와 아닌 경우로 분리한다. 10인 경우는 index를 하나 더 늘려서 검사해야 하기 때문이다. 보너스가 D면 제곱, T면 세제곱을 한다. 옵션이 *면 2를 곱하고 이전 값이 존재하면 그 값도 2를 곱한다. 옵션이 #이면 -1을 곱한다. 배열에 저장한다. 배열 값을 모두 더한다. 코드 function solution(dartResult) { let answer = 0; let ..

[프로그래머스] [1차] 비밀지도 (JavaScript)

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT 비밀지도 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 Input을 2진수로 변환하고 왼쪽에 빈 부분은 0으로 채운다. 겹쳤을 때 1인 부분은 #, 0인 부분은 공백으로 둔다. 코드 function solution(n, arr1, arr2) { var answer = []; let ..

[프로그래머스] 실패율 (JavaScript)

문제 프로그래머스 2019 KAKAO BLIND RECRUITMENT 실패율 https://programmers.co.kr/learn/courses/30/lessons/42889# 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스�� programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 각 단계에서 실패한 유저수를 해당 단계까지 도전한 누적 도전자 수를 나누어 실패율을 계산한다. 누적 도전자수는 전체수에서 각 단계에서 실패한 유저수를 빼면서 구한다. stage와 실패율을 가지는 객체를 배열에 저장한다. 배열을 정렬..

[프로그래머스] 후보키 (JavaScript)

문제 프로그래머스 2019 KAKAO BLIND RECRUITMENT 후보키 https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 테이블 컬럼의 개수 N을 이용해서 N에서 생성할 수 있는 모든 조합 리스트를 생성한다. 조합에서 값은 컬럼의 인덱..

[프로그래머스] 기둥과 보 설치 (JavaScript)

문제 프로그래머스 2020 KAKAO BLIND RECRUITMENT 기둥과 보 설치 언어 자바스크립트(JavaScript) https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1..

[JavaScript] generator

Generator 함수, Generator Generator 함수는 일반 함수와는 달리 function의 우측에 *를 표시하여 정의한 함수이다. Generator 함수에는 두 가지 특성이 있다. 함수를 호출하면 iterator를 반환한다. 이때 반환하는 iterator를 generator라고 부른다. 함수 내부 코드가 함수를 호출할 때 실행되지 않는다. 대신 generator의 next 메서드를 호출할 때 실행되며 함수 내부의 yield 키워드에 도달할 때까지 실행된다. 단순한 예제를 작성하면 다음과 같다. counterGen이라는 함수를 호출하면 iterator를 반환한다. 반환된 iterator는 generator 함수에서 yield 키워드에 도달할 때까지 코드를 실행하고 yield 키워드와 같이 위..

[JavaScript] iterable, iterator

iterable 객체란 Iterable 객체란 Symbol.iterator라는 Symbol 타입의 값을 속성으로 가지고 그 속성의 값이 인자를 받지 않으며 iterator 객체를 반환하는 메소드인 객체를 의미한다. 배열은 대표적인 iterable 객체이다. arr이라는 객체에 Symbol.iterator라는 속성의 값은 어떤 메소드인데, 그 메소드를 실행하면 다음과 같이 iterator를 반환한다. Symbol.iterator의 의미를 모르겠다면 Symbol에 관해 설명한 이전 글을 참고하길 바란다. https://jongbeom-dev.tistory.com/138 [JavaScript] Symbol Symbol을 알아야 하는 이유? 처음에 Symbol을 공부할 때에는 그런가 보다 하고 넘어갔는데 결국에..

[JavaScript] Symbol

Symbol을 알아야 하는 이유? 처음에 Symbol을 공부할 때에는 그런가 보다 하고 넘어갔는데 결국에는 다시 돌아와 공부하게 되었다. 제너레이터를 공부하다 보니 이터레이터를 알아야 하고, 이터레이터를 공부하다 보니 결국 Symbol을 알아야 했다. 그래서 Symbol, 이터레이터, 제너레이터까지 차례대로 공부하면서 정리하고자 한다. Symbol Symbol은 ES6에서 도입한 새로운 데이터 타입이다. 즉 숫자, 문자열, 불리언과 같은 원시 타입이다. Symbol()이라는 함수는 항상 Symbol 타입의 값을 반환하며 유일한 값이다. Symbol()은 Symbol()과 같이 new 키워드를 사용할 수 없다. Symbol 함수에 인자로 문자열을 입력할 수 있지만 특별한 기능은 존재하지 않는다. 굳이 차이..