우주먼지 개발 log

[스파르타내배캠][TIL] 2023/10/18 본문

TIL(Today I Learned)/스파르타 내배캠

[스파르타내배캠][TIL] 2023/10/18

개발자먼지 2023. 10. 19. 14:01
반응형

오늘의 Review

더보기

한 일🧵

[알고리즘 스터디]

스파르타 내배캠에서 팀끼리 계획표를 짜고 약속을 정하라고 하는 덕분에

다같이 알고리즘 스터디를 시작했다! 오늘부터 당장!

프로그래머스에서 3문제씩 돌아가면서 정하고, 매일 2시에 리뷰를 하기로 함.

첫날이라 하나씩 정해서 푼 문제를 리뷰했는데,
역시 먼저 풀어온거랑 그냥 듣기만 하는거는 차원이 다르다.

모르는 부분이 생겨도 바로바로 해결해 줄 수가 없음..다들 초보라..

따로 생각할 시간이 필요하다.

문제풀이를 하다보니 부족한 점이 확실하게 보인다.

 

[javascript 강의]

문제 풀이에 얶매이는 덕분에 강의는 4주차 밖에 못들었다! ㅋㅋ

 

부족한 점 / 할 일💥

자주 사용하는 배열,문자열 메서드 익숙해지기
전통적인 C 문법에서 점점 벗어나 보자.
for in, for of, 화살표 함수, method 사용 연습~!~!~!

 

TIL (Today I Learned) ➕➖✖➗

강의에서 배운거는 습득을 못해서 쓰지를 못함...^.^

하루에 하나만 연습하자.

 

1. 문자열 메서드 : repeat()

repeat() 메서드는 문자열을 주어진 매개변수 count 번의 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.

console.log(str.repeat(count));

const mood = 'Happy! ';

console.log(`I feel ${mood.repeat(3)}`);
// Expected output: "I feel Happy! Happy! Happy! "

매개변수

count  : 문자열을 반복할 횟수. 0과 양의 무한대 사이의 정수([0, +∞)).

 

리턴값

현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열.

 

3. repeat() 메소드를 이용해 다음 문제를 풀어보자!

https://school.programmers.co.kr/learn/courses/30/lessons/181950#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

3. 내 답

(before) str에 더하기 연산자 사용

문자열을 더해주는 concat() 메소드 이용 가능한데, mdn 문서로 보니 배열을 결합해주는 array 메소드라는 사실..

그래서 배열과 문자열의 경계는 어디까지인가..-_- 문서상 유사 배열객체라 가능한 것 같다.

더보기

Array 인스턴스의 concat() 메서드는 두 개 이상의 배열을 병합하는 데 사용됩니다. 이 메서드는 기존 배열을 변경하지 않고, 새 배열을 반환합니다.

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// Expected output: Array ["a", "b", "c", "d", "e", "f"]

매개변수

valueN Optional

새 배열로 연결할 배열 및/또는 값입니다.

모든 valueN 매개변수가 생략된 경우, concat은 호출된 기존 배열의 얕은 복사본을 반환합니다. 

 

반환값

새로운 Array 객체.

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]);
    
    let i=0;
    while (i < n-1) {
    	//str=str.concat(input[0]); //18라인대체가능 : 문자열 더하기 메서드 
        str+=input[0];
    	i++;
    }
    console.log(str);
});

//테스트 1 〉	통과 (53.63ms, 32.4MB)
//테스트 2 〉	통과 (46.55ms, 32.3MB)
//테스트 3 〉	통과 (53.36ms, 32.4MB)

(after) repeat 메소드 사용 시 시간은 더 오래걸림.

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));    
});

// 테스트 1 〉	통과 (261.45ms, 31.8MB)
// 테스트 2 〉	통과 (280.63ms, 31.8MB)
// 테스트 3 〉	통과 (62.16ms, 32.4MB)

 

 

반응형