코딩테스트 문제풀이/programmers

프로그래머스 node.js - 신규 아이디 추천

문제 링크링크 풀이 과정제시된 각 단계의 조건에 맞게 처리해주면 된다.문제는 금방 파악했지만, 각 조건 처리해주는 데에서 애먹었다.. 2단계는 정규식 쓰면 될 것 같지만 이에 대해 잘 모르고 타임어택(시간 재고 푸는 것) 중이라 그냥 아스키코드를 이용해서 풀어봤다. 뭔가 대체적으로 정규식을 이용해서 풀면 금방 풀릴 것 같다는 생각이 들었는데 정규식을 잘 몰라서 일단 주먹구구식 구현해봤다.다른사람 풀이를 보면 대부분이 정규식을 이용해 깔끔하게 푼 것 같다. 이번 기회에 공부해둬야겠다!  전체 코드function solution(new_id) { var answer = ""; let tmpId = ""; // 1단계 : 대문자 -> 소문자 치환 new_id = new_id.toLowerCase()...

프로그래머스 node.js - 성격 유형 검사하기

문제 링크링크 풀이 과정각 유형의 점수를 저장하기 위해 scores 라는 object 변수를 만들었다.반복문을 통해 제시된 n개의 질문을 순회하였고, 조건문을 통해 선택지에 따라 문제 조건에 맞게 점수를 배정했다.모두 순회하고 점수를 다 구한 뒤에는, 각 지표별로 유형을 결정했다.점수가 같은 경우는 사전 기준 빠른순으로 택하는 것이므로, 크거나같으면(>=) 해당 캐릭터를 선택하도록 했다.   전체 코드function solution(survey, choices) { var answer = ""; const scores = { R: 0, T: 0, C: 0, F: 0, J: 0, M: 0, A: 0, N: 0 }; // 각 질문에 따른 점수 구하기 for (let i = 0; i = scores.T..

프로그래머스 node.js - 키패드 누르기

문제 링크링크 풀이 과정규칙왼손은 *, 오른손은 #에서 시작상하 좌우로만 이동 가능하고, 한 칸 거리는 11,4,7(왼쪽 열)을 입력할때는 왼손 사용3,6,9(오른쪽 열)를 입력할 때는 오른손 사용2,5,8,0(가운데 열)을 입력할 때는 각 손가락 위치 중 해당 위치까지 거리가 가까운 손을 사용하되, 거리가 같으면 손잡이 방향인 손을 사용 입출력입력: 순서대로 누를 번호가 담긴 배열 numbers출력: 각 번호를 누른 손가락이 왼손인지, 오른손인지 나타내는 연속된 문자열 hand방향성현재 위치를 표현하고 거리를 구하기 위해 좌표 개념을 활용했다. 누를 번호 리스트를 다 해당 좌표 배열로 변환해주었다. 왼손 출발지는 *, 오른손 출발지는 # 이므로, 변수의 초기값으로 지정해줬다. 좌표로 변환한 리스트를 반..

프로그래머스 node.js - 실패율

문제 링크링크 풀이function solution(N, stages) { var answer = []; let failValues = new Object(); stages.sort((a, b) => a - b); // 오름차순 정렬 let stageLength = stages.length; // 유저 수 for (let i = 1; i i === stage).length; // 스테이지에 도달했지만 클리어 못한 유저 수 let failRetio; // 실패율 if (notClearStage) failRetio = notClearStage / stageLength; else failRetio = 0; // 도달한 유저가 없는 경우 실패율 0 failValues[i] = fa..

프로그래머스 node.js - [1차] 비밀지도

문제 링크링크풀이function solution(n, arr1, arr2){ let map1 = arr1; let map2 = arr2; let answer = []; // 이진수 변환 후, n에 맞춰서 앞에 0을 채워서 반환 map1 = map1.map((num) => num.toString(2).padStart(n,"0")); map2 = map2.map((num) => num.toString(2).padStart(n,"0")); // n개의 행 연산 for(let i = 0; i  문제 조건 분석한변 길이가 n인 정사각형 지도지도 각 칸은 공백(” “)과 벽(”#”)으로 이루어져 있음하나라도 벽이면 전체 지도에서도 벽 → 지도1(벽) OR..

프로그래머스 node.js - 숫자 문자열과 영단어

문제 링크링크 풀이const numberWordList = ["zero","one","two","three","four","five","six","seven","eight","nine"];function solution(s){ let answer = s; numberWordList.forEach((x,i) => { if(answer.includes(x)){ answer = answer.replaceAll(x,i) } }) return Number(answer);}[”zero”, ~ ,”nine”] 배열을 만들고 해당 배열을 순회하면서 문자열 s에 각 단어가 포함되어 있는지 확인합니다.ex) “one”과 같은 단어가 있다면..