Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 450c8a6

Browse files
Merge pull request codeisneverodd#24 from jaewon1676/main
2022年04月11日(월) jaewon1676 7문제의 풀이 추가, README.md 수정
2 parents 347d558 + 7d2fe17 commit 450c8a6

8 files changed

+146
-3
lines changed

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
### Level 2 👨🏻‍💻(풀이 중..)
8181

8282
- 전체 문제 수: 64문제
83-
- 풀이 문제 수: 44문제(2022.04.07)
83+
- 풀이 문제 수: 45문제(2022.04.11)
8484
- 풀이 완료 예상 시점: 2022년 4월 중 **- 풀이가 완료되는대로 표를 추가하겠습니다.**
8585

8686
### Level 3 👨🏻‍💻(풀이 중..)

‎level-1/[1차]-다트-게임.js‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,38 @@ function solution(dartResult) {
2323
}
2424
answer = result.reduce((a, b) => a + b)
2525
return answer;
26+
}
27+
28+
//정답 2 - jaewon1676
29+
function solution(dartResult) {
30+
var answer = 0;
31+
let score = 0;
32+
let cnt = [];
33+
34+
for (let i = 0; i < dartResult.length; i++) {
35+
//점수가 주어질때
36+
if (!isNaN(dartResult[i])) {
37+
// i가 1인 경우는 10점, 그외에는 점수
38+
score = Number(dartResult[i - 1]) === 1 ? 10 : Number(dartResult[i]);
39+
//보너스 S일때
40+
} else if (dartResult[i] === "S") {
41+
cnt.push(score);
42+
//보너스 D일때
43+
} else if (dartResult[i] === "D") {
44+
cnt.push(Math.pow(score, 2));
45+
//보너스 T일때
46+
} else if (dartResult[i] === "T") {
47+
cnt.push(Math.pow(score, 3));
48+
//옵션 *일떄
49+
} else if (dartResult[i] === "*") {
50+
cnt[cnt.length - 2] = cnt[cnt.length - 2] * 2;
51+
cnt[cnt.length - 1] = cnt[cnt.length - 1] * 2;
52+
//옵션 #일때
53+
} else if (dartResult[i] === "#") {
54+
cnt[cnt.length - 1] = -1 * cnt[cnt.length - 1];
55+
}
56+
}
57+
//3개의 점수 합산
58+
answer = cnt.reduce((acc, cur) => acc + cur, 0);
59+
return answer;
2660
}

‎level-1/부족한-금액-계산하기.js‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,15 @@ function solution(price, money, count) {
2525
}
2626
return answer;
2727
}
28+
29+
//정답 3 - jaewon1676
30+
function solution(price, money, count) {
31+
let sum_price = 0; // 놀이기구의 이용료의 합
32+
for (let i = 1; i <= count; i++){
33+
sum_price += i * price // 이용료의 N배 만큼 곱해서 더해준다.
34+
}
35+
if (sum_price <= money){
36+
return 0;
37+
}
38+
return sum_price - money;
39+
}

‎level-1/약수의-합.js‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,17 @@ function solution(n) {
3838
if (Number.isInteger(sqrtN)) result += sqrtN;
3939
return result;
4040
}
41+
42+
//정답 4 - jaewon1676
43+
function solution(n) {
44+
var answer = 0;
45+
for (let i=1; i<=n; i++){
46+
if (n%i == 0){ // n으로 i를 나눴을 때, 나머지가 0이면 약수이다.
47+
answer += i
48+
}
49+
}
50+
return answer;
51+
}
52+
// 약수란 어떤 수를 나누었을 때 나머지 없이 나누어 떨어지게 하는 그 수입니다.
53+
// 10을 예로 들면, 10은 1, 2, 5, 10 이 나누었을 때 나머지가 없으므로 약수입니다.
54+
// 3, 4, 6, 7, 8, 9 는 나누었을 때 나머지가 남기때문에 약수가 아닙니다.

‎level-1/이상한-문자-만들기.js‎

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,28 @@ function solution(s) {
3030
flag = !flag;
3131
}
3232
return result;
33-
}
33+
}
34+
35+
//정답 3 - jaewon1676
36+
function solution(s) {
37+
return s.split(' ').map(el => el.split('').map((el, index) => index % 2 == 0 ? el.toUpperCase() : el.toLowerCase()).join('')).join(' ')
38+
}
39+
/* s.split(' ') // 띄어쓰기를 기준으로 나눕니다. [ 'try', 'hello', 'world' ]
40+
41+
.map(el => el.split('')) 나눈것을 기준으로 요소 하나 하나씩 나눠줍니다
42+
[[ 't', 'r', 'y' ], [ 'h', 'e', 'l', 'l', 'o' ], [ 'w', 'o', 'r', 'l', 'd' ]]
43+
44+
.map((el, index) => index % 2 == 0 ? el.toUpperCase() : el.toLowerCase())
45+
//map에서 첫번째는 앞에서 가져온 요소, 두번째는 index를 반환 합니다!
46+
//map의 index를 기준으로 짝수인지 홀수인지 판별하여 대문자, 소문자로 변환 해줍니다.
47+
[[ 'T', 'r', 'Y' ], [ 'H', 'e', 'L', 'l', 'O' ], [ 'W', 'o', 'R', 'l', 'D' ]]
48+
49+
.join('') 작은 배열들을 합쳐줍니다.
50+
['TrY', 'HeLlO', 'WoRlD']
51+
52+
.join(' ') 큰 배열들을 합쳐줍니다.
53+
"TrY HeLlO WoRlD"
54+
55+
대, 소문자 변환, split, reverse, join, map 등등을 활용 해야 하므로
56+
문자열을 연습하는데 좋은 문제입니다.
57+
*/

‎level-1/자연수-뒤집어-배열로-만들기.js‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,23 @@ function solution(n) {
1717
.split("")
1818
.reverse()
1919
.map((item) => parseInt(item));
20-
}
20+
}
21+
22+
//정답 3 - jaewon1676
23+
function solution(n) {
24+
var answer = [];
25+
// 정수형 => 문자형 => 하나씩 잘라서 뒤집어서 모아준다.
26+
n = n.toString().split('').reverse().join('')
27+
for (let i=0; i<n.length; i++){
28+
answer.push(parseInt(n[i])) // n은 지금 문자형이기때문에 Push 하기전에 정수형으로 바꿔줌
29+
// answer.push(n[i]) 로 해주면 현재 n[i]는 문자형이기때문에 결과는 ["5","4","3","2","1"] 가 됩니다.
30+
// answer(parseInt(n[i])) 로 해준다면 n[i]는 문자형 => 정수형으로 변하기 때문에 결과는 [5, 4, 3, 2, 1] 가 됩니다.
31+
// 문자형과 정수형의 차이는 숫자에 큰 따옴표가 있느냐 없느냐의 차이입니다.
32+
}
33+
return answer
34+
}
35+
36+
//정답 4 - jaewon1676
37+
function solution(n) {
38+
return n = n.toString().split('').reverse().map(o => o = parseInt(o));
39+
}

‎level-2/구명보트.js‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//https://github.com/codeisneverodd/programmers-coding-test
2+
//완벽한 정답이 아닙니다.
3+
//정답 1 - jaewon1676
4+
function solution(people, limit) {
5+
let cnt = 0;
6+
7+
people.sort((a, b) => {return a - b}) // 몸무게 오름차순
8+
9+
while(people.length != 0){ // 무인도에 갖힌 사람이 없어질때까지 반복
10+
if (people[0] + people[people.length-1] <= limit){ // 무게가 되면 둘 다 빼주기
11+
people.pop()
12+
people.shift()
13+
} else {
14+
people.pop() // 무거운사람을 뺴주자
15+
}
16+
cnt++;
17+
}
18+
return cnt;
19+
} // 4주차 2번 문제와 유사함

‎level-2/짝지어-제거하기.js‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,24 @@ function solution(s) {
2424
answer = notPairStack.length === 0 ? 1 : 0
2525
return answer;
2626
}
27+
28+
//정답 3 - jaewon1676
29+
30+
function solution(s){
31+
let cnt = 0; // 빼준 부분을 카운트 해줍니다
32+
let answer;
33+
let stack = []
34+
for (let i of s){
35+
if (stack[stack.length - 1] === i){ // 스택의 끝부분과 i를 비교합니다
36+
stack.pop();
37+
cnt++;;
38+
} else {
39+
stack.push(i)
40+
}
41+
}
42+
43+
(s.length / 2 == cnt ? answer = 1 : answer = 0 )
44+
// s의 길이를 2로 나눠서 cnt 값이 된다면 문자열의 개수만큼 잘 잘라졌다는 뜻입니다
45+
return answer;
46+
}
47+
// 코테 1주차 5번 문제와 유사합니다. 문자열 유형을 연습하기에 좋은 문제입니다

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /