본문 바로가기

알고리즘 문제풀이

(35)
[프로그래머스] 2020 카카오 공채 - 괄호변환 오늘 푼 문제 2. 괄호변환 / Lv.2 / 시간 : 29분 programmers.co.kr/learn/courses/30/lessons/60058?language=javascript 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr function solution(p) { let split = (s)=>{ // u, v 분리 let [open,close] = [0,0]; for(let i=0;i{ // 올바른 문자열 판단 let stack = []; for(let i=0;i{ if(s==="") return "..
[프로그래머스] 2020 카카오 공채 - 문자열 압축 오늘 푼 문제 1. 문자열 압축 / Lv.2 / 시간 : 31분 programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr function solution(s) { if(s.length===1) return 1; var answer = Infinity; let max = s.length/2; for(let n=1;n{ let next = arr[i+1]; if(cur===next) cnt++; else{ if(cnt===1) ..
[코테 자신감 올리기 프로젝트] 레벨 1만 조진다 카카오 코테가 자신감을 마구 박살내고 있다. 왜 같은 레벨 2인데 카카오가 붙으면 난이도가 수직상승 하는 것 같죠? 점점 프렌즈 친구들이 무서워지기 시작함. 그런 의미에서 오늘은 역대 카카오 기출 중 레벨 1만 여러개 풀 거임. 저중량 고반복의 느낌으로~ 오늘 푼 문제 1. 다트 게임 / Lv.1 / 시간 : 39분 programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr function solution(dartResult) { var answer = 0; let regx = /([0-9]*)(\D*)/g; let bonusHash = {"S":1,"D":2,"T":3}; let arr = dartRes..
[프로그래머스] 2021 카카오 공채 - 순위 검색 오늘 푼 문제 3. 순위 검색/ Lv.2 / 시간 : 128분 (타임오버 이게 lv2라고????????????) programmers.co.kr/learn/courses/30/lessons/72412 str.split(' ')) let hash = list.reduce((h,arr)=>{ arr.reduce((acc,cur,i)=>{ if(i===4) acc.forEach(key=>{ if(h[key]) h[key].push(cur*1); else h[key] = [cur*1]; }) else acc = [...acc.map(s=>s+cur),...acc.map(s=>s+'-')]; return acc; },[""]) return h; },{}); Object.values(hash).forEach(arr..
[프로그래머스] 2021 카카오 공채 - 메뉴 리뉴얼 오늘 푼 문제 2. 메뉴 리뉴얼 / Lv.2 / 시간 : 89분(시간초과) programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr function solution(orders, course) { var answer = []; let getCombination = (str,n)=>{ let len = str.length; if(len{ orders.forEach(order=>{ let combis = getCombination(ord..
[프로그래머스] 2021 카카오 공채 - 신규 아이디 추천 오늘 푼 문제 1. 신규 아이디 추천 / Lv.1 / 시간 : 32분 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr function solution(new_id) { // 1. 소문자 new_id = new_id.toLowerCase(); // 2. 특수문자 제외 let regx = /[\(\)\=\/+\[\{\]\}~!@#$%^&*:?,]/g; new_id = new_id.replace(regx,""); // 3..
[프로그래머스] 2019카카오 겨울 인턴십 - 징검다리 건너기 오늘 푼 문제 4. 징검다리 건너기 / Lv.3 / 시간 : 124분(시간초과) programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 1차 시도 - 효율성 테케 13 시간초과 function solution(stones, k) { let max = Math.max(...stones.slice(0,k)); var answer = max; for(let i=0; il) return max; break; } } return answer; } 이진탐색 적용하려니 존나 헷갈림. 통과는 했지만 전반적인 효율성은 떨어진다. 코드도 별로 마음에 들지 않음...
[프로그래머스] 2019카카오 겨울 인턴십 - 불량 사용자 오늘 푼 문제 3. 불량 사용자/ Lv.3 / 시간 : 78분 programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr function solution(user_id, banned_id) { var answer = 0; let temp = banned_id.reduce((acc,cur)=>{ let tempList = user_id.reduce((acc2,cur2)=>{ if(cur.length!==cur2.length) retur..