Skip to content

Commit 10bba3e

Browse files
authored
Merge pull request codeisneverodd#32 from codeisneverodd/chaerin-dev
[풀이 추가] 2022.04.15 8문제 추가
2 parents 26ac17e + 163ec45 commit 10bba3e

8 files changed

+93
-4
lines changed

level-1/가운데-글자-가져오기.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,12 @@ function solution(s) {
2929
// 홀수인 경우 - 중간지점
3030
else answer = s[point];
3131
return answer;
32-
}
32+
}
33+
34+
// 정답 4 - chaerin-dev
35+
function solution(s) {
36+
return s.length % 2
37+
? s[parseInt(s.length / 2)]
38+
: s[s.length / 2 - 1] + s[s.length / 2];
39+
}
40+

level-1/같은-숫자는-싫어.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,12 @@ function solution(arr) {
1414
answer[answer.length - 1] !== arr[i] ? answer.push(arr[i]) : null
1515
}
1616
return answer;
17-
}
17+
}
18+
19+
//정답 3 - chaerin-dev
20+
function solution(arr) {
21+
// 콜백함수의 조건을 만족하는 '모든' 값을 배열로 반환하고,
22+
// 조건을 만족하는 값이 없으면 빈 배열을 반환하는 filter 메서드 활용
23+
// 첫 번째 요소의 경우 undefined와 비교
24+
return arr.filter((item, index) => item !== arr[index - 1]);
25+
}

level-1/나누어-떨어지는-숫자-배열.js

+9
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,13 @@ function solution(arr, divisor) {
1717
answer.length === 0 ? answer.push(-1) : null
1818
answer.sort((a, b) => a - b)
1919
return answer;
20+
}
21+
22+
//정답 3. chaerin-dev
23+
function solution(arr, divisor) {
24+
let answer = [];
25+
arr.forEach((e) => {
26+
if (e % divisor === 0) answer.push(e);
27+
});
28+
return answer.length ? answer.sort((a, b) => a - b) : [-1];
2029
}

level-1/문자열-내-p와-y의-개수.js

+10
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,13 @@ function solution(s) {
1717

1818
return p == y ? true : false;
1919
}
20+
21+
//정답 3 - chaerin-dev
22+
function solution(s) {
23+
let pCount = s.split(/p/i).length - 1;
24+
let yCount = s.split(/y/i).length - 1;
25+
return pCount === yCount;
26+
}
27+
// 문자열에서 특정 문자의 개수를 구하려면 split을 사용하면 된다.
28+
// Ex. "ababb".split("a") 의 결과는 ["", "b", "bb"]
29+
// => 즉, "a"의 갯수는 3에서 1을 뺀 2

level-1/문자열-내-마음대로-정렬하기.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,15 @@ function solution(strings, n) {
1010
return 0
1111
})
1212
return answer;
13-
}
13+
}
14+
15+
//정답 2 - chaerin-dev
16+
function solution(strings, n) {
17+
return strings.sort((a, b) => {
18+
// 인덱스 n번째 글자를 기준으로 오름차순 정렬
19+
if (a[n] > b[n]) return 1;
20+
else if (a[n] < b[n]) return -1;
21+
// 인덱스 n번째 글자가 같으면 사전순 정렬
22+
else return a > b ? 1 : -1;
23+
});
24+
}

level-1/문자열-내림차순으로-배치하기.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,15 @@ function solution(s) {
99
return 0
1010
}).join('')
1111
return answer;
12-
}
12+
}
13+
14+
//정답 2 - chaerin-dev
15+
function solution(s) {
16+
// 문자열 -> 배열 -> 정렬 -> 순서뒤집기 -> 문자열
17+
return s.split("").sort().reverse().join("");
18+
}
19+
20+
//정답3 - chaerin-dev
21+
function solution(s) {
22+
return s.split("").sort((a, b) => (a < b ? 1 : -1)).join("");
23+
}

level-1/문자열-다루기-기본.js

+13
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,16 @@ function solution(s) {
3333

3434
return answer;
3535
}
36+
37+
//정답 4 - chaerin-dev
38+
function solution(s) {
39+
// 길이가 4 혹은 6이 아니면 false 반환
40+
if (s.length !== 4 && s.length !== 6) return false;
41+
// 각 자리중에 숫자가 아닌 것이 하나라도 있으면 false 반환
42+
for (let i = 0; i < s.length; i++) {
43+
if (isNaN(Number(s[i]))) return false;
44+
}
45+
// 위의 모든 조건에 포함되지 않으면
46+
// (길이가 4 혹은 6이고, 숫자로만 구성되어 있으면) true 반환
47+
return true;
48+
}

level-1/소수-찾기.js

+19
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,23 @@ function solution(n) {
1212
for (const isPrime of isPrimeArr) if (isPrime) answer += 1
1313
answer -= 2 //인덱스 0과 1 제외
1414
return answer;
15+
}
16+
17+
//정답 2 - chaerin-dev
18+
// 소수인지 판별하는 함수
19+
function isPrime(x) {
20+
for (let i = 2; i <= Math.sqrt(x); i++) {
21+
if (x % i === 0) return false;
22+
}
23+
return true;
24+
}
25+
function solution(n) {
26+
// 소수의 개수를 저장할 변수
27+
let answer = 0;
28+
// 1은 소수가 아니므로 2부터 n까지 모든 수에 대해
29+
for (let i = 2; i <= n; i++) {
30+
// 소수이면 소수의 개수에 1 추가
31+
if (isPrime(i)) answer++;
32+
}
33+
return answer;
1534
}

0 commit comments

Comments
 (0)