개발 공부 57

[프로그래머스] [1차] 캐시

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 캐시 https://programmers.co.kr/learn/courses/30/lessons/17680 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr ..

[프로그래머스] [1차] 프렌즈4블록

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 프렌즈4블록 https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 board를 2차원 배열로 변환한다. 2차원 배열로 변환한 배열 myBoard와 이 배열을 복사한 newBoard를 생성한다. myBoard를 기준으로 x=i, y=j 좌표가 삭제 가능한지 모두 확인..

[프로그래머스] [1차] 뉴스 클러스터링 (JavaScript)

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 뉴스 클러스터링 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 두 문자열 모두 두 글자씩 잘랐을 때 영문자 쌍이 아니면 버리고 영문자 쌍이라면 소문자로 바꾸어 새로운 배열에 넣는다. 새로운 배열을 arr1, arr2이라고 한다. 합집합은 arr1 배열에서 ..

[프로그래머스] 튜플 (JavaScript)

문제 프로그래머스 2019 카카오 개발자 겨울 인턴십 튜플 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 input 문자열을 분리하여 배열의 배열의 형태로 변환한다. 크기 순으로 배열을 정렬한다. 첫 번째 배열의 요소를 answer에 저장한다. 다음 배열의 요소 중에 answer에 없는 요소를 찾고 answ..

[프로그래머스] [3차] 압축 (JavaScript)

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [3차] 압축 https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 key라는 객체를 정의하고 단어를 key, 색인 번호를 value로 설정한다. msg 문자열에서 i 번째 문자열을 w로 i+1 번째 문자열을 c로 두고 재귀 함수를 실행한다. 재귀 함수에서 w+c가 사전에 있으면 그 w+c를 w로 두고 c를 그다음 단어..

[프로그래머스] 괄호 변환 (JavaScript)

문제 프로그래머스 2020 KAKAO BLIND RECRUITMENT 괄호 변환 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 변환 과정을 그대로 따르도록 코드를 작성한다. 변환 과정은 재귀적인 과정이다. 이때 과정을 실행할 문자열과 정답으로 출력할 문자열을 입력으로 받는 재귀 함수를 이용한다. 처음 문자열을 균형 잡힌 괄호 문자열 u, v로 분리한다. u는..

[프로그래머스] [3차] 방금그곡 (JavaScript)

문제 프로그래머스 2018 KAKAO BLIND RECRUITMENT [3차] 방금 그 곡 https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, �� programmers.co.kr 언어 자바스크립트(JavaScript) 접근 방법 m과 musicinfos의 악보 정보 문자열의 모든 문자를 #이 존재하지 않는 문자로 변환한다. 이는 나중에 포함 여부를 확인할 때 더 간단하게 확인하기 위함이다. 각 음악에서 총 재생한 시간을 구하고 그..

[프로그래머스] 문자열 압축 (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 ..