글자 강조처리는 
간단하게 데이터를 배열 형태가 아닌 객체 형태로 만든 다음
검색 키워드와 결과 배열이 되게 변경했다.

데이터를 받은 경우 배열 데이터를 다시 분할해준 다음
각자 받은 데이터를 split(키워드)를 통해 분할해 배열로 만들고
해당 배열을 map을 통해 키워드와 일치 여부를 판단해 <b>처리를 하기로 했다.

아래와 같이 키워드 부분 앞뒤에 특정 글자(사용되지 않는 특수문자)를 넣고
다시 그 특수문자를 제거하는 방법으로 분할한 다음
분할된 데이터들을 키워드와 비교를 통해 키워드일 경우에만 볼드처리했다.
const keywordSpliter = `@${keyword}@`;
const textArr = text.split(keyword).join(keywordSpliter).split('@');
{textArr.map((el) => (el === keyword ? <b>{el}</b> : el))}

https://ryu-wanted-week3.netlify.app/

 

10시에 모이기로 헀지만 10시에는 한분밖에 오시지 않았기 때문에 
개인적으로 조건별로 readme에 기술하라는 부분에 대해 작성하기로 했고
12시가 되기 전에 한분이 더 오셔서 최종적으로 포크할 대상을 정하고
13시 30분에 모이기로 했다.

13시 30분에 모여서 딱히 대화가 없어서
14시에 시작할 수업을 들었고
팀 readme를 작성해 푸시하고 
회의록에 들어갈 양식을 기존 작성방식에 따라 추가했다.

기술이 필요한 내용은 아래와 같은데 
이미 회고를 진행하며 볼드처리, 키보드 이동은 작성한 상태이기 때문에
2-1과 2-2에 대한 내용을 추가로 작성했다.



1.currying은 함수의 조합으로 인자를 부분적으로 받는다.

일반적 함수는 아래와 같이 인자를 받을 수 있지만

const printWords = (a,b) =>{ 
  const sum = a + b 
  console.log(sum)
}



커링 함수는 아래와 같이 인자들을 구분해서 받으며

const printWords = (a) => (b) =>{
  const sum = a + b
  console.log(sum)
}

 

인자가 다 들어오기 전까지는 실행이 되지 않고
이전 앞에서부터 차근차근 인자들을 받아서 모아둔다.

const printWithThisIs = printWords("This is ") => a인자만 받고 대기
const printWithThatIs = printWords("That is ") => a인자만 받고 대기

printWithThisIs("SPARTA!!!") => This is SPARTA!!! 출력
printWithThatIs("an apple") => That is an apple 출력

 

클래스의 확장과 유사한 방식으로 함수를 사용할 수 있기 때문에
확장성과 유연성이 있는 것 같다.
물론 값이 고정되어 있다면 아래처럼 앞에 들어갈 값 또는 뒤에 들어갈 값을
고정한 상태로 진행할 수 있지만 그렇게 한다면 

const printWords = (b) =>{
  const a = "This is "
  const sum = a + b
  console.log(sum)
}

 

 

2.Composite Pattern은 전체와 부분으로 정의되는 데이터를 다루는 것으로
폴더 구조 등을 표현할 때 유용하다.

이러한 이유는 하나의 객체 내부에 단일 및 복합객체를 함께 담기 때문에
동등한 계층의 객체가 단일 객체일 수 있으며
어떤 폴더는 내부에 폴더들이 들어있는 복합 객체일 수 있는 것이다.


일반적으로 안정성 또는 일관성을 강조하는 패턴으로 사용하는데
주 사용 목적은 일관성이라고 한다.


 

 


(1).백준 5359 Music은 각 음의 일정 간격의 범위가 
지정한 수치보다 작을경우 무음구간이 발생하는데
해당 구간의 발생 빈도를 각 테스트케이스마다 구하는 문제였다.

조금씩 변수명을 고려하며 작성하다보니 생각보다 헷갈렸지만
문제 자체의 난이도는 어렵지 않았다.

let input = `3
8 3 2
1 3 2 7 5 4 6 6
4 2 1
1 2 3 4
4 5 900
1 1 1 1`.split('\n')

let result = []

for(let i = 1 ; i < input.length ; i+=2){
    let count = 0
    let [lengths, interval, gap] = input[i].split(' ').map(Number)
    let dataSet = input[i+1].split(' ').map(Number)
    for(let j = interval ; j <= dataSet.length ; j++){
        let max = Math.max(...dataSet.slice(j-interval, j))
        let min = Math.min(...dataSet.slice(j-interval, j))
        if(max-min <= gap){
            count++
        }
    }
    result.push(count)
}

console.log(result.join('\n'))

+ Recent posts