문제 설명
문제 풀이
이번엔 두 가지의 풀이를 들고 왔다. 첫 번째 풀이는 코드도 더욱 간결하고 테스트도 통과하였다. 하지만 채점하고 제출하는데 테스트 10, 11, 12번을 통과하지 못해서 효율성 검사에서 탈락했다.
function solution(n) {
let answer = [];
for(let i = 2; i <= n; i++) {
let check = true;
for(let j = 2; j < i; j++) {
if(i % j === 0) {
check = false;
}
}
if(check) {
answer.push(i);
}
}
return answer.length;
};
두 번째 풀이는 조금 복잡해졌지만 잘 통과하는 모습을 보여준다.
function solution(n) {
let answer = 0;
let arr = [];
for (let i = 2; i <= n; i++) {
arr[i] = i;
} for (let i = 2; i <= n; i++) {
if (arr[i] === 0)
continue;
for (let j = i + i; j <= n; j += i) {
arr[j] = 0;
}
}
for (let i = 2; i <= n; i++) {
if (arr[i] !== 0)
answer++;
}
return answer;
}
실행 결과
두 코드 모두 테스트 1, 2를 통과하였다.
코드 채점하고 제출
첫번째 코드 정확성, 효율성 테스트 실패
두번째 코드 정확성, 효율성 테스트 통과
'프로그래머스 문제 > Level 1' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? - 자바스크립트 (0) | 2020.08.27 |
---|---|
[프로그래머스] 문자열 정수로 바꾸기 - 자바스크립트 (0) | 2020.08.27 |
[프로그래머스] 서울에서 김서방 찾기 - 자바스크립트 (0) | 2020.08.27 |
[프로그래머스] 문자열 다루기 기본 - 자바스크립트 (0) | 2020.08.27 |
[프로그래머스] 문자열 내림차순으로 배치하기 - 자바스크립트 (0) | 2020.08.27 |