level1
-
[프로그래머스] 없는 숫자 더하기 - javascript기타/코딩테스트 2022. 6. 22. 21:54
문제 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 나의 풀이 function solution(_numbers) { // 0~9 까지 더한숫자 = 45 return 45 - _numbers.reduce((preVal, curVal) => preVal + curVal, 0); } 배열에 없는 수를 모두 더한다고 했을 때 reduce를 사용해서 계산해 보아야지 라는 생각이 들었다. 그런데 그를 위해서는 없는 숫자를 배열로 만들어야했다. 그래서 0~9라는 숫자를 배열에 넣어놓고 numbers를 for문으로 돌리면서 숫자를 찾아 sli..
-
[프로그래머스] [1차] 비밀지도 - javascript기타/코딩테스트 2022. 6. 21. 12:51
문제 1. _n : 정사각형의 한 변의 길이 2. 지도에는 공백 " "(0) 또는 벽 "#"(1) 이 표시되어 있음 3. 전체 지도는 지도 1과 지도 2를 겹쳐서 얻을 수 있음 4. 지도 1과 지도 2중 "#"이 있는 칸은 전체 지도에서 벽(#) 5. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서 공백( ) 6. 1 = #, 0 = ' ' 나의 풀이 function solution(_n, _arr1, _arr2) { const answer = []; for (let i = 0; i < _n; i++) { const map1 = _arr1[i].toString(2).padStart(_n, "0"); const map2 = _arr2[i].toString(2).padStart(_n, "0"); c..
-
[프로그래머스] 로또의 최고 순위와 최저 순위 - javascript기타/코딩테스트 2022. 6. 21. 00:45
문제 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어졌습니다. 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요. 나의 풀이 function solution(_lottos, _winNums) { // 모르는 번호 개수 let coverCnt = 0; _lottos.forEach((v, i) => { const winIdx = _winNums.findIndex((e) => e == v); if (winIdx > -1) _winNums..
-
[프로그래머스] 키패드 누르기 - javascript기타/코딩테스트 2022. 6. 16. 20:55
문제 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 1. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당 2. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용 3. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용 4. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용 4-1. 만약 두 ..
-
[프로그래머스] 숫자 문자열과 영단어 - javascript기타/코딩테스트 2022. 6. 14. 13:30
문제 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 내 풀이 function solution(_s) { const number = [ /zero/gi, /on..
-
[프로그래머스] 실패율 - javascript기타/코딩테스트 2022. 6. 13. 22:58
문제 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라. 실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 내 풀이 function solution(_n, _stages) { const answer = []; for (let i = 1; i { if (v >= i) challenge++; // 스테이지에 도달한 플레이어 if (v == i) notClear++; // 스테이지에 도달했으나 클리어하지 못한 플레이어 }); answer.push({ st..
-
[프로그래머스] 폰켓몬 - javascript기타/코딩테스트 2022. 6. 13. 22:53
문제 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요. 내 풀이 function solution(_nums) { let answer = 0; const numSet = new Set(_nums); const choose = _nums.length / 2; answer = choose < numSet.size ? choose : numSet.size; return answer; } ㅎ.. 처음에 이상한 삽질을. . 문제 이해못하고 경우의 수 구해서 어떻게 하지 한참을..
-
[프로그래머스] 신규 아이디 추천 - javascript기타/코딩테스트 2022. 6. 13. 22:30
문제 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다. 7단계 new_id의 길이가 2자 이하라면, new..