목록프로그래머스 알고리즘/KAKAO (56)
N
programmers.co.kr/learn/courses/30/lessons/17677?language=javascript 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr function getString(str){ const result = []; for(let i = 0; i = 'A' && st..
programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr function solution(s) { let answer = s.length; for(let i = 1; i
programmers.co.kr/learn/courses/30/lessons/42888?language=javascript 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 우선 record에 있는 문자열에서 "Enter"와 "Change"를 이용해 id에 따른 닉네임을 등록하자. forEach를 통해 record의 각각 엘리먼트를 순회. element를 순회하면서 공백으로 문자열을 split 하고, 결과를 [state, id, nickname]에 저장한다. state가 "Enter" or "Change"라면 ..
programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr BFS와 DP를 활용한다. BFS로 길을 탐색하면서 다음에 이동할 위치의 비용이 현재 비용 + 건설 ..
programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 플로이드 와샬을 이용. 거쳐가는 게 이득인 경우 값을 갱신하면서 진행. 마지막에는 모든 경로를 탐..

programmers.co.kr/learn/courses/30/lessons/60059# 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 완전 탐색으로 답이 있을 때까지 찾아야 한다. 답이 없으면 false를 리턴. N = 자물쇠의 크기, M = 열쇠의 크기 우선 키를 4가지의 형태로 준비한다. 원래의 키 형태와 90도, 180, 270도를 돌린 키를 keys 배열에 저장한다. 그리고 자물쇠를 80 * 80 2차원 벡터 board에 다시 저장한다. 열쇠를 돌려가면서 열리는지 확인하기 위함이다. 자물쇠의 시작 인덱스는 board[M - 1][M - 1]이다. ..
programmers.co.kr/learn/courses/30/lessons/72412 > token){ if(index < 4){ str[index++][0] = token; } else{ score = stoi(token); } } for(int i = 0; i < 2; i++){ string t1, t2, t3, t4; t1 = str[0][i]; for(int j = 0; j < 2; j++){ t2 = str[1][j]; for(int k = 0; k < 2; k++){ t3 = str[2][k]; for(int l = 0; l < 2; l++){ t4 = str[3][l]; m[t1 + t2 + t3 + t4].push_back(score); } } } } } for(auto itr = m.b..
programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 지문에 나와있는 것처럼 순서대로 하면 된다. 1. transform()을 이용해 소문자로 바꾸기. 2. for문을 이용해 알파벳, 숫자, '.', '-', '_'을 제외한 문자 제거. 3. 이중 for문으로 연속된 점 하나로 통합. 4. 맨 앞과 맨 뒤에 온점 제거. 5. 4번까지의 결과가 비어있다면 'a'로 만들기. 6. 지금까지의 결과가 16자 이상이면 앞에서부터 15..