Repository: DEEPDIVE-coding-potatoes/Algorithm
Pull request #8: Test: 250305 코딩 기초 문제풀이
Author: login: ksy21019
Created: 2025-03-05T07:27:14Z | Merged: 2025-03-05T08:07:01Z

## 📆 공부 일자

> 20250305

## 📝 공부 내용

> 1. a와 b 출력하기
처음에는 +를 사용해 문자열을 연결하였는데 ,도 사용하여 코드를 조금 수정하였다.
> 2. 문자열 반복해서 출력하기
repeat(count) 메서드 사용
repeat 메서드는 문자열을 count만큼 반복해 붙인 새 문자열을 반환한다.
> 3. 대소문자 바꿔서 출력하기
변환 값 저장할 answer 문자열 변수 준비
for문을 사용해 str 만큼 반복
i가 대문자라면 소문자로 변환 후 answer 문자열 변수에 저장
그게 아니라면 대문자로 변환 후 answer 문자열 변수에 저장
answer 문자열 변수 출력
toUpperCase() : 대문자로 변환
toLowerCase() : 소문자로 변환
> 4. 특수문자 출력하기
\ 가 표시되려면 연속으로 써야함
직접 표기되려면 백틱을 사용
> 5. 덧셈식 출력하기
'+' 를 사용하면 문자열을 연결해 출력할 수 있다.
',' 도 사용할 수 있었는데 깜빡 했네,,
> 6. 문자열 돌리기
for문을 사용해 한글자씩 출력
> 7. 문자열 겹쳐쓰기
my_string을 문자의 배열로 변환 후 인덱스 s에서부터 시작하는 문자열을 overwrite_string.length에 해당하는 만큼 overwrite_string으로 대체
수정된 배열을 문자열로 결합 후 반환
splice(start, deleteCount, newItem, newItem, …) 메소드 사용
splice 메서드는 요소를 삭제함과 동시에 새 요소를 추가할 수 있다.
> 8. 배열의 길이에 따라 다른 연산하기
if문을 사용해 배열 길이 홀짝 판별
map() 메서드를 사용해 각 요소를 돌며 n을 더하는 행위를 반복

### 스크린샷 (선택)
<img width="796" alt="a와 b 출력하기" src="https://github.com/user-attachments/assets/b718b748-0d1d-461b-96c0-ccb539361111" />
밑에는 일부 수정본
<img width="803" alt="스크린샷 2025-03-05 오후 2 06 15" src="https://github.com/user-attachments/assets/06afbbd8-a2b7-42f6-8da1-bd377743dfef" />
<img width="761" alt="문자열 반복해서 출력하기" src="https://github.com/user-attachments/assets/797a5006-7feb-4e37-b400-d31efa425f17" />
<img width="801" alt="대소문자 바꿔서 출력하기" src="https://github.com/user-attachments/assets/00b10f8c-6c5b-4d8e-8f67-5c6f0a1df2e2" />
<img width="801" alt="특수문자 출력하기" src="https://github.com/user-attachments/assets/1cb4531e-4ea1-4ec8-9e6f-58cc92551b2b" />
<img width="804" alt="덧셈식 출력하기" src="https://github.com/user-attachments/assets/66292304-0be0-4d83-a740-0f6c86f1ff89" />
<img width="800" alt="문자열 돌리기" src="https://github.com/user-attachments/assets/49396d40-0a9f-489e-9ca0-4575ac8b2c17" />
<img width="804" alt="문자열 겹쳐쓰기" src="https://github.com/user-attachments/assets/e60badbf-c326-4915-9ca5-4ddb40609815" />
<img width="703" alt="배열의 길이에 따라 다른 연산하기" src="https://github.com/user-attachments/assets/38620612-de53-4d4b-abf6-983c9350c3ca" />

## 💬 리뷰 요구사항(선택)

> 조언은 언제나 환영입니다 👍



Diff:
diff --git "a/\352\266\214\354\210\230\354\230\201/training_08.js" "b/\352\266\214\354\210\230\354\230\201/training_08.js"
new file mode 100644
index 0000000..a10751b
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_08.js"
@@ -0,0 +1,14 @@
+/*a와 b 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = line.split(' ');
+}).on('close', function () {
+    console.log("a =", Number(input[0]) + "\nb =", Number(input[1]));
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_09.js" "b/\352\266\214\354\210\230\354\230\201/training_09.js"
new file mode 100644
index 0000000..b5ada72
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_09.js"
@@ -0,0 +1,16 @@
+/*문자열 반복해서 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = line.split(' ');
+}).on('close', function () {
+    str = input[0];
+    n = Number(input[1]);
+    console.log(str.repeat(n));
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_10.js" "b/\352\266\214\354\210\230\354\230\201/training_10.js"
new file mode 100644
index 0000000..eff9bfa
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_10.js"
@@ -0,0 +1,23 @@
+/*대소문자 바꿔서 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = [line];
+}).on('close',function(){
+    str = input[0];
+    answer = "";
+    for(let i of str){
+        if(i === i.toUpperCase()){
+            answer += i.toLowerCase();
+        } else {
+            answer += i.toUpperCase();
+        }
+    }
+    console.log(answer)
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_11.js" "b/\352\266\214\354\210\230\354\230\201/training_11.js"
new file mode 100644
index 0000000..7fdb124
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_11.js"
@@ -0,0 +1,11 @@
+/*특수문자 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+rl.on('close', function () {
+    const answer = `!@#$%^&*(\\'"<>?:;`
+    console.log(answer);
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_12.js" "b/\352\266\214\354\210\230\354\230\201/training_12.js"
new file mode 100644
index 0000000..7f2a930
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_12.js"
@@ -0,0 +1,16 @@
+/*덧셈식 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = line.split(' ');
+}).on('close', function () {
+    a = Number(input[0]);
+    b = Number(input[1]);
+    console.log(a + " + " + b + " = " + (a + b));
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_13.js" "b/\352\266\214\354\210\230\354\230\201/training_13.js"
new file mode 100644
index 0000000..d3696c1
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_13.js"
@@ -0,0 +1,17 @@
+/*문자열 돌리기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = [line];
+}).on('close',function(){
+    str = input[0];
+    for(x of str){
+        console.log(x);
+    }
+});
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_14.js" "b/\352\266\214\354\210\230\354\230\201/training_14.js"
new file mode 100644
index 0000000..97dc09e
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_14.js"
@@ -0,0 +1,6 @@
+/*문자열 겹쳐쓰기*/
+function solution(my_string, overwrite_string, s) {
+  let answer = [...my_string];
+  answer.splice(s, overwrite_string.length, overwrite_string)
+  return answer.join('');
+}
\ No newline at end of file
diff --git "a/\352\266\214\354\210\230\354\230\201/training_15.js" "b/\352\266\214\354\210\230\354\230\201/training_15.js"
new file mode 100644
index 0000000..232faf8
--- /dev/null
+++ "b/\352\266\214\354\210\230\354\230\201/training_15.js"
@@ -0,0 +1,8 @@
+/*배열의 길이에 따라 다른 연산하기*/
+function solution(arr, n) {
+  if (arr.length % 2 === 0) {
+      return arr.map((num, i) => i % 2 !== 0 ? num + n : num)
+  } else {
+      return arr.map((num, i) => i % 2 === 0 ? num + n : num)
+  }
+}
\ No newline at end of file


Reviews:
user: login: SinYusi
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T07:49:34Z
user: login: SinYusi
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T07:51:28Z
user: login: ksy21019
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T07:56:48Z

Review comments:
diff_hunk: @@ -0,0 +1,14 @@
+/*a와 b 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = line.split(' ');
+}).on('close', function () {
+    console.log("a =", Number(input[0]) + "\nb =", Number(input[1]));
path: 권수영/training_08.js
user: login: SinYusi
body: " ", << 이 연산자로 문자열을 변수와 합치게 되면 자동으로 String 형변환이 되기 때문에 Number 함수는 굳이 안쓰셔도 될 것 같습니다!
created_at: 2025-03-05T07:49:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+/*문자열 겹쳐쓰기*/
+function solution(my_string, overwrite_string, s) {
+  let answer = [...my_string];
+  answer.splice(s, overwrite_string.length, overwrite_string)
path: 권수영/training_14.js
user: login: SinYusi
body: splice 함수 좋아보이네요. 한 수 배우고 갑니다 :)
created_at: 2025-03-05T07:51:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,14 @@
+/*a와 b 출력하기*/
+const readline = require('readline');
+const rl = readline.createInterface({
+    input: process.stdin,
+    output: process.stdout
+});
+
+let input = [];
+
+rl.on('line', function (line) {
+    input = line.split(' ');
+}).on('close', function () {
+    console.log("a =", Number(input[0]) + "\nb =", Number(input[1]));
path: 권수영/training_08.js
user: login: ksy21019
body: 정보 감사합니다:)
created_at: 2025-03-05T07:56:48Z
author_association: CONTRIBUTOR

PR comments:
user: login: soyeon0116
created_at: 2025-03-05T07:38:30Z
body: 공부내용 적은 거 진짜 꼼꼼하시고 좋은데요!
문자열 출력에서 + , 두가지 인 거 얻어갑니당ㅎㅎ
author_association: CONTRIBUTOR
user: login: gaeunchoi
created_at: 2025-03-05T07:39:32Z
body: 캬 수영님 공부내용 다 적은거 진짜 좋네요 js로 안푼 제가 봐도 뭔가 바로 이해가 쏙쏙 드는 !! 좋네요 :-)
author_association: CONTRIBUTOR
user: login: yg5057
created_at: 2025-03-05T07:43:48Z
body: 완전 꼼꼼하게 적으셨군요!!  멋있습니다!! 
수고하셨어요👍
author_association: CONTRIBUTOR