본문 바로가기

Algorithm

(12)
[프로그래머스] 신규 아이디 추천 with Javascript 신규 아이디 추천 2021 KAKAO BLIND RECRUITMENT 문제보기 제출답안 function solution(new_id) { const reg = /^[a-z0-9-_.]$/; const tmp = new_id.toLowerCase().split('').filter((v) => reg.test(v)); const answer = []; tmp.forEach((v) => { answer.push(v); if (v === '.' && answer[answer.length - 2] === v) answer.pop(); }); if (answer[0] === '.') answer.shift(); if (answer[answer.length - 1] === '.') answer.pop(); if (a..
[프로그래머스] 숫자 문자열과 영단어 with Javascript 숫자 문자열과 영단어 2021 카카오 채용연계형 인턴십 문제보기 제출 답안 function solution(s) { let answer = ''; const k = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; let tmp = ''; for (let i = 0; i < s.length; i++) { if (isNaN(s[i])) { tmp += s[i]; if (k.includes(tmp)) { answer += k.indexOf(tmp); tmp = ''; } } else { answer += s[i]; } } return answer * 1; } 풀이 매개변수 s를 전체 탐색하기 위해 s의 길이만큼 ..
[프로그래머스] 키패드 누르기 with Javascript 키패드 누르기 2020 카카오 인턴십 문제보기 제출답안 function solution(numbers, hand) { let answer = ''; let leftHand = '*'; let rightHand = '#'; const keypad = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ['*', 0, '#']]; for (let i = 0; i < numbers.length; i++) { if ([2, 5, 8, 0].includes(numbers[i])) { // 가운데(2, 5, 8, 0) const tmp = [[], [], []]; // 좌표 [왼손, 가운데, 오른손] let left = 0; let right = 0; for (let j = 0; j < 4; j++) { ..
[프로그래머스] 크레인 인형뽑기 with Javascript 크레인 인형뽑기 2019 카카오 개발자 겨울 인턴십 문제보기 제출답안 function solution(board, moves) { let answer = 0; const tmp = []; moves.forEach((v) => { for (let i = 0; i 1) { if (tmp[tmp.length - 2] === tmp[tmp.length - 1]) { answer += 2; tmp.pop(); tmp.pop(); } } }); return answer; } 풀이 answer - 사라..
[프로그래머스] 실패율 with Javascript 실패율 2019 KAKAO BLIND RECRUITMENT 문제보기 제출답안 function solution(N, stages) { const tmp = []; let people = stages.length; for (let i = 0; i e === (i + 1)).length; tmp.push([(k / people), (i + 1)]); people -= k; } tmp.sort((a, b) => { return a[0] === b[0] ? a[1] - b[1] : b[0] - a[0]; }); return tmp.map(e => e[1]); } 풀이 각 단계별 실패율 값(k)을 계산하여 해당 스테이지의 값(i + 1)과 함께 ..
[프로그래머스] 다트게임 with Javascript 다트게임 2018 KAKAO BLIND RECRUITMENT 문제보기 제출 답안 function solution(dartResult) { const answer = []; let tmp = 0; for (let i = 0; i = 0 && dartResult[i] < 10) { if (dartResult[i] == 1 && dartResult[i + 1] == 0) { tmp = 10; i++; } else { tmp = dartResult[i] * 1; } } else if (dartResult[i] === 'S'){ answer.push(tmp); } else if (dartResult[i] === 'D'){ answ..
[프로그래머스] 비밀지도 with Javascript 비밀지도 2018 KAKAO BLIND RECRUITMENT 문제보기 내가 제출한 답안 function solution(n, arr1, arr2) { var answer = []; for (let i = 0; i tmp.length) { tmp = ' ' + tmp; } } answer.push(tmp); } return answer; } 나의 풀이 반복문(for)를 활용하여 지도의 제일 윗줄부터 마지막 줄까지 탐색한다. tmp 분석하기 비트연산자(|)와 'toString'을 활..
[프로그래머스] 상호평가 with JavaScript 상호평가(LEVEL 1) 위클리 챌린지 문제보기 내가 제출한 답안 function solution(scores) { var answer = ''; let avg = []; for (let i = 0; i add + currValue); let countMax = tmp.filter(element => Math.max(...tmp) === element).length; let countMin = tmp.filter(eleme..