본문 바로가기

프로그래머스 문제

(35)
[프로그래머스] 문자열 내 p와 y의 개수 - 자바스크립트 문제 설명 문제 풀이 function solution(s) { let p = s.toLowerCase().split('p').length; // p문자열을 ''로 반환해준다. let y = s.toLowerCase().split('y').length; // y문자열을 ''로 반환해준다. return p === y ? true : false; } 위 코드는 처음 문제를 풀었을 때 작성한 코드이다. split('string')을 쓰면 원하는 string의 문자는 사라진다. 그래서 그 것의 길이를 비교하면 된다고 판단했다. 아래 코드는 위 코드를 한 줄로 코드를 만들어 보았다. function solution(s) { return s.toLowerCase().split('p').length === s.toLo..
[프로그래머스] 문자열 내 마음대로 정렬하기 - 자바스크립트 문제 설명 문제 풀이 function solution(strings, n) { return strings.sort((a, b) => a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n])); } string메서드 중 하나인 localeCompare를 array 정렬 메서드인 sort메서드에 넣어서 문제를 풀었다. localeCompare메서드는 문자열과 문자열을 비교하는데 사용된다. 아래에 예제를 하나 들어보곘다. 'a'.localeCompare('b'); // -1 'b'.localeCompare('a'); // 1 'b'.localeCompare('b'); // 0 'a'.localeCompare('a'); // 0 이런 식으로 -1, 0, 1을..
[프로그래머스] 두 정수 사이의 합 - 자바스크립트 문제 설명 문제 풀이 function solution(a, b) { const number = []; for(let i = -10000000; i { return prev + curr; }, 0); } } 이번 문제는 하드코딩처럼 짜 봤다. 제한 조건은 딱히 상관없는 것이었지만 그것들을 의식한다는 느낌으로 짜 봤다. 사실 연습문제를 거의 처음 풀어봤을 때 코딩한 것이라 하드코딩이 되었다. 또한 reduce메서드를 써보고 싶었다. 아래 코드는 다른 방식의 풀이 법이다. 훨씬 코드도 간단하고 보기 쉬운 것같다. function adder(a, b, c = 0){ for (let i = Math.min(a, b); i
[프로그래머스] 나누어 떨어지는 숫자 배열 - 자바스크립트 문제 설명 문제 풀이 function solution(arr, divisor) { let answer = []; for(let i = 0; i (a - b)); }; 이번 문제는 생각하기 비교적 쉽다. 실행 결과 코드 채점하고 제출
[프로그래머스] 같은 숫자는 싫어 - 자바스크립트 문제 설명 문제 풀이 function solution(arr) { return arr.filter((x, i) => x !== arr[i + 1]); }; filter메서드를 통해 arr안에 있는 x가 x다음 번 요소와 같지 않은 것들을 반환하는 알고리즘을 만들었다. 실행 결과 코드 채점하고 제출
[프로그래머스] 가운데 글자 가져오기 - 자바스크립트 문제 설명 문제 풀이 function solution(s) { let answer = ''; if(s.length % 2 !== 0) { answer = s.split('').slice(s.length / 2, (s.length / 2) + 1).join(''); console.log(answer); } else if (s.length % 2 === 0) { answer = s.split('').slice((s.length / 2) - 1, (s.length / 2) + 1).join(''); } return answer; } 처음으로 테스트한 문제 풀이이다. 하지만 if 문이 아닌 삼항 연산자를 통해 코드를 줄여보려고 밑에 처럼 만들어 보았다. function solution(s) { return s...
[프로그래머스] 2016년 - 자바스크립트 문제 설명 문제 풀이 function solution(a, b) { let answer = ''; let days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; let date = new Date(2016, a - 1, b); let day = date.getDay(); answer = days[day]; return answer; } 자바스크립트의 날짜 메서드를 활용하여 문제를 풀었다. 실행 결과 코드 채점하고 제출
[프로그래머스] K번째수 - 자바스크립트 문제 설명 문제 풀이 function solution(array, commands) { let fir = []; let sec = []; let answer = []; for(let a = 0; a a - b); answer.push(sec[k - 1]); } return answer; } 문제의 예시에 맞게 fir, sec에 임시로 값을 담고 마지막 answer에 집어 넣었다. 실행 결과 코드 채점하고 제출
[프로그래머스] 체육복 - 자바스크립트 문제 설명 문제 풀이 function solution(n, lost, reserve) { let answer = 0; let ans = []; for(let i = 0;i
[프로그래머스] 모의고사 - 자바스크립트 문제 설명 문제 풀이 function solution(answers) { let answer = []; let one = [1, 2, 3, 4, 5]; let two = [2, 1, 2, 3, 2, 4, 2, 5]; let three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; let score = [0, 0, 0]; // 정답지와 수포자들의 답 확인 for(let i = 0; i < answers.length; i++) { if(answers[i] === one[i % one.length]) { score[0] ++; } if(answers[i] === two[i % two.length]) { score[1] ++; } if(answers[i] === three[i % three.len..
[프로그래머스] 완주하지 못한 선수 - 자바스크립트 문제 설명 문제 풀이 function solution(participant, completion) { participant.sort(); completion.sort(); for(let i in participant) { if(participant[i] !== completion[i]) return participant[i]; } } 우선 participant와 competion을 정렬하고 for in 문을 돌려서 participant의 인덱스 번호에 해당하는 문자열과 completion의 인덱스 번호에 해당하는 문자열이 같지 않으면 paricipant의 값을 리턴한다. 실행 결과 코드 채점하고 제출