프로그래머스 알고리즘 7

[프로그래머스/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..

반응형