알고리즘, 자료구조 38

[프로그래머스/javascript] 문자열 내 p와 y의 개수

문제 정답 처리된 코드(1) function solution(s){ var answer = true, p_cnt=0, y_cnt=0; var tmp = s.toUpperCase(); for(let x of tmp){ if(x === 'P') p_cnt++; else if(x === 'Y') y_cnt++; } if(p_cnt === y_cnt) answer=true; else answer=false; return answer; } 문제 이해 1) 문자열을 모두 대문자로 만들어서 하나하나 확인한다. 2) P일 때와 Y일 때 각각 1씩 카운트해서 개수가 같은지 다른지 확인한다. tmp 변수를 만들지 않고 s.toUpperCase(); 만 처리하고 for 문을 돌렸더니 테스트 케이스에 모두 통과되지 않았음. ..

[프로그래머스/javascript] 문자열 다루기 기본

문제 정답 처리된 코드 function solution(s) { var answer = false; var regex = /^[0-9]*$/; if((s.length === 4 || s.length === 6) && (regex.test(s))){ answer = true; } return answer; } 문제 이해 1) 길이가 4 또는 6이고 숫자로만 되어있는지 확인되면 true 처리한다. 2) 나머지는 모두 false 3) 정규 표현식이 유용하다. 정규 표현식 위 문제에서 사용된 정규표현식을 집고 넘어가보자. /^[0-9]*$/ 1) / 기호는 시작과 종료를 의미한다. 2) ^ 라인의 시작 지점을 뜻 함 ( 어디선가 ^는 부정을 뜻하기도 한다고 했던거 같은데... 좀더 찾아보기로...) 3) [] ..

[프로그래머스/javascript] 문자열 내 마음대로 정렬하기

문제 정답 처리된 코드 다른 사람 코드 function solution(strings, n) { var answer = []; answer = strings.sort((a, b) => a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n])); return answer; } 문제 이해 1) 문자열 비교하는 localeCompare를 사용 2) 삼항 연산자로 마무리 삼항 연산자, localeCompare 추가로 포스팅해야겠다. 출처: programmers.co.kr/learn/courses/30/lessons/12915?language=javascript 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이..

[프로그래머스/javascript] 문자열 내림차순으로 배치하기

문제 정답 처리된 코드 function solution(s) { var answer = ''; answer = s.split('').sort().reverse().join(''); return answer; } 문제 이해 1) split로 문자열을 배열로 만든다 2) 배열을 sort()로 나열한다. (sort() 없이 reverse() 하면 오류 난다.) 3) 나열한 배열을 reverse()로 내림차순 정렬한다. 4) join()으로 배열을 문자열로 만든다. 출처: programmers.co.kr/learn/courses/30/lessons/12917?language=javascript 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열..

[프로그래머스/javascript] 나누어 떨어지는 숫자 배열 문제 풀기

문제 정답 처리된 코드(1) function solution(arr, divisor) { var answer = []; for(let i=0; i (a-b)); return answer; } 문제 이해 1) arr 배열 길이만큼 회전하면서 divisor와 나눈 나머지가 0인 값을 answer 배열에 push 한다. 2) answer 배열 길이가 0이면 나누어 떨어지는 값이 없다는 의미이므로 -1을 push 한다. 3) 오름 차순 정렬을 위한 처리를 한다. 정답 처리된 코드(2) 다른 사람의 풀이에서 좋아요가 가장 많은 코드이다. function solution(arr, divisor) { var answer = []; answer = arr.filter(v => v%divisor === 0); answe..

[프로그래머스/javascript] 같은 숫자는 싫어 문제 풀기

문제 정답 처리된 코드(1) function solution(arr) { var answer = []; for(let i=0; i val != arr[index+1]); return answer; } 문제 이해 1) 덕분에 filter 사용법을 배웠다. 출처: programmers.co.kr/learn/courses/30/lessons/12906?language=javascript 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr

[프로그래머스/javascript] 평균 구하기

문제 정답 처리된 코드(1) function solution(arr) { var answer = 0, sum=0; for(let x of arr){ sum += x; } answer = sum/arr.length; return answer; } 문제 이해 1) arr 배열의 모든 합을 sum에 담는다. 2) 합을 arr 배열의 길이로 나눈다. 정답 처리된 코드(2) function solution(arr) { var answer = 0, sum=0; answer = arr.reduce((a, b) => a+b) / arr.length; return answer; } 문제 이해 1) es6문법인 reduce를 사용한 다른 분 코드다. 익숙해지자. 출처: programmers.co.kr/learn/cours..

[프로그래머스/javascript] 짝수와 홀수 문제 풀기

문제 정답 처리된 코드(1) function solution(num) { var answer = ''; if(num % 2 === 0 || num === 0){ answer='Even'; } else if(num % 2 === 1 || num !== 0){ answer='Odd'; } return answer; } 문제 이해 1) 코드가 깔끔 치 않아 보이는데 num이 0이 아닐 때를 처리하지 않으면 틀렸다는 결과가 나온다. 정답 처리된 코드(2) function solution(num) { var answer = ''; if(num % 2 === 0){ answer="Even"; } else { answer="Odd"; } return answer; } 문제 이해 1) 2로 나눈 나머지가 0일 때를 제..

[프로그래머스/javascript/카카오인턴십] 크레인 인형뽑기 게임

문제 게임 개발자인 "죠르디"는 크레인 인형 뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1x1"크기의 칸들로 이루어진 "NxN"크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5x5"크기의 예시입니다.) 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1x1"크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 아..

[프로그래머스/javascript] 수박수박수박수박수박수?

문제 정답 처리된 코드(1) function solution(n) { var answer = ''; let def = '수박'; let def_len = def.length; if(n % def_len === 1){ answer = def.repeat(n/def_len) + def[0].repeat(n % def_len); } if(n % def_len === 0){ answer = def.repeat(n/def_len) } return answer; } 문제 이해 1) 기본 값을 '수박'으로 지정, 기본 값 길이도 변수에 할당. 2) n값과 기본 값의 길이를 나누었을 때 나머지가 1이냐 0이냐고 구분하여 문자열 처리 정답 처리된 코드(2) function solution(n) { var answer =..

반응형