Skip to content

Commit 4abcfb9

Browse files
authored
Merge pull request border-studygroup#50 from bongsee/develop
Upload Programmers Lv.0 Day6
2 parents 7a029f7 + 4fb532f commit 4abcfb9

File tree

4 files changed

+226
-0
lines changed

4 files changed

+226
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
### 문제 설명
2+
3+
- 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
4+
5+
---
6+
7+
### 제한사항
8+
9+
- 2 ≤ my_string 길이 ≤ 5
10+
- 2 ≤ n ≤ 10
11+
- "my_string"은 영어 대소문자로 이루어져 있습니다.
12+
13+
---
14+
15+
### 입출력 예
16+
17+
| my_string | n | return |
18+
| --------- | --- | ----------------- |
19+
| "hello" | 3 | "hhheeellllllooo" |
20+
21+
---
22+
23+
### 입출력 예 설명
24+
25+
- 입출력 #1 : "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
26+
27+
---
28+
29+
### 나의 풀이
30+
31+
```javascript
32+
function solution(my_string, n) {
33+
const arr = [...my_string];
34+
const answer = [];
35+
arr.forEach((char) => {
36+
let i = 0;
37+
while (i < n) {
38+
answer.push(char);
39+
i++;
40+
}
41+
});
42+
return answer.join("");
43+
}
44+
```
45+
46+
### 회고
47+
48+
- 이중 반복문이 마음에 안든다. 다른 방법이 없을까
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
### 문제 설명
2+
3+
- 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
4+
5+
---
6+
7+
### 제한사항
8+
9+
- 1 ≤ my_string의 길이 ≤ 1,000
10+
11+
---
12+
13+
### 입출력 예
14+
15+
| my_string | return |
16+
| --------- | ------- |
17+
| "jaron" | "noraj" |
18+
| "bread" | "daerb" |
19+
20+
---
21+
22+
### 입출력 예 설명
23+
24+
- 입출력 #1 : my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.
25+
- 입출력 #2 : my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.
26+
27+
---
28+
29+
### 나의 풀이
30+
31+
```javascript
32+
function solution(my_string) {
33+
let reverseArr = [];
34+
let strArr = Array.from(my_string);
35+
while (strArr.length > 0) {
36+
reverseArr.push(...strArr.splice(-1));
37+
}
38+
return reverseArr.join("");
39+
}
40+
```
41+
42+
### 회고
43+
44+
- String은 마치 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 `유사 배열 객체`지만, 엄연히 배열과는 다르다. 따라서 배열의 메서드를 사용하는 것 또한 말이 안됨.
45+
- `Array.prototype.join()`는 배열의 각 요소를 구분할 문자열(a.k.a separator)을 지정. 생략 시 쉼표로 구분됨. 따라서 빈 문자열을 인수로 제공해줘야 우리가 원하는 정상적으로 합쳐진 문자열이 만들어진다.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
### 문제 설명
2+
3+
- "_"의 높이와 너비를 1이라고 했을 때, "_"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
4+
5+
---
6+
7+
### 제한사항
8+
9+
- 1 ≤ n ≤ 10
10+
11+
---
12+
13+
### 입출력 예
14+
15+
입력 #1
16+
`3`
17+
18+
출력 #1
19+
20+
```
21+
*
22+
**
23+
***
24+
```
25+
26+
---
27+
28+
### 입출력 예 설명
29+
30+
- 입출력 #1 : n이 3이므로 첫째 줄에 _ 1개, 둘째 줄에 _ 2개, 셋째 줄에 \* 3개를 출력합니다.
31+
32+
---
33+
34+
### 나의 풀이
35+
36+
```javascript
37+
const readline = require("readline");
38+
const rl = readline.createInterface({
39+
input: process.stdin,
40+
output: process.stdout,
41+
});
42+
43+
let input = [];
44+
45+
rl.on("line", function (line) {
46+
input = line.split(" ");
47+
}).on("close", function () {
48+
const n = Number(input[0]);
49+
let star = "";
50+
let stars = [];
51+
for (let i = 0; i < n; i++) {
52+
star += "*";
53+
stars.push(star);
54+
}
55+
console.log(stars.join("\n"));
56+
});
57+
```
58+
59+
### 회고
60+
61+
- 아래의 map함수로도 동일하게 동작.(처음에 시도했었던 방식)
62+
63+
```javascript
64+
rl.on("line", function (line) {
65+
input = line.split(" ");
66+
}).on("close", function () {
67+
const n = Number(input[0]);
68+
let star = "";
69+
let stars = [];
70+
for (let i = 0; i < n; i++) {
71+
star += "*";
72+
stars.push(star);
73+
}
74+
// 제출한 정답과 비교할 부분
75+
const answer = stars.map((star) => star + "\n");
76+
console.log(answer.join(""));
77+
// 아래는 내가 처음 시도했을 때 잘못 사용한 코드
78+
stars.map((star) => star + "\n");
79+
console.log(stars.join(""));
80+
});
81+
```
82+
83+
- map 메서드는 원본배열을 직접 바꾸지 않는다. 따라서 변환 후의 값을 사용하려면 새로운 변수를 선언한 후 해당 변수에 할당하여 사용해야한다.
84+
- `"\n"` 은 줄바꿈 기능을 함. 이런걸 뭐라하지? `escape`?
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
### 문제 설명
2+
3+
- 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
4+
5+
---
6+
7+
### 제한사항
8+
9+
- 1 ≤ num_list의 길이 ≤ 100
10+
- 0 ≤ num_list의 원소 ≤ 1,000
11+
12+
---
13+
14+
### 입출력 예
15+
16+
| num_list | return |
17+
| --------------- | ------ |
18+
| [1, 2, 3, 4, 5] | [2, 3] |
19+
| [1, 3, 5, 7] | [0, 4] |
20+
21+
---
22+
23+
### 입출력 예 설명
24+
25+
- 입출력 #1 : [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.
26+
- 입출력 #2 : [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.
27+
28+
---
29+
30+
### 나의 풀이
31+
32+
```javascript
33+
function solution(num_list) {
34+
answer = [];
35+
let odd = (even = 0);
36+
37+
num_list.forEach((number) => {
38+
if (number % 2 === 0) {
39+
even++;
40+
} else if (number % 2 !== 0) {
41+
odd++;
42+
}
43+
});
44+
answer.push(even, odd);
45+
return answer;
46+
}
47+
```
48+
49+
### 회고

0 commit comments

Comments
 (0)