10시에 마감 회의를 시작해 포크를 하고 
현재 부족한 점들을 기록해보니 

1.데모 2.라이브러리 버전 3.개인 노션페이지 링크 수정 4.Best Practice하단 인물명 수정이 필요한 상태로 2,4번은 간단한 일이고 3번은 각자 해야 할 일이기 때문에 1번 데모 영상부터 제작했다.

과제 완료 여부를 알려주기 위해 아래 과정에 따라 촬영 후 gif로 변환했다.
1.페이지네이션 이동 및 2~6페이지 사이에서 정지
2.글 생성 시 폼 초기화 되는 내용 및 1페이지로 이동 확인
3. 2~6페이지로 이동 후 글 수정 시 입력 폼 초기화 및 페이지 유지 확인
4. 삭제 후 1페이지로 이동 확인 

gif를 확인해준 다음

CRUD기능 구현 관련 내용과
페이지네이션 구현 방식에 대한 설명 기술을 완료한 다음 
과제를 제출했다.

 





(1).백준 15518 Window는 좌우로 움직이는 유리창을 이동시킨 다음
열려있는 영역의 넓이를 구하기로 헀다.

특이하게도 창문은 이중구조로 홀/짝 단위마다 교차구조로
aa--aa--aa--aa--aa  <-- 저런 형식으로 구성되어 있다고 가정한 문제다.
--bb--bb--bb--bb--

각 위치를 1층 2층의 레이어라고 가정하고 배열을 구성한 다음
(예시 : [1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2])
움직임이 있어서 겹쳐질 경우 3, 없는 경우 0으로 표현했다.
(예시 : [0,1,3,2,2,2,1,1,2,2,1,1,1,3,2,0])

또한 하나의 가로축의 넓이는 변수이기 때문에
Math.floor(i/width)로 덩어리를 구분했고
Math.floor(i/width)%2를 통해 홀/짝의 1,2층 레이어를 구분했다.

최종적으로 투과할 수 있는 0 또는 3의 갯수에 높이를 곱해서 해결했다.
(두개가 겹쳐지는 3이 하나 만들어지려면 어딘가는 0이 생겨야 한다)

let input = `8 7 15
5 0 9 14 0 4 4 15`.split('\n')

let [range, height, width] = input[0].split(' ').map(Number)
let moveArr = input[1].split(' ').map(Number)
let windowArr = []

for(let i = 0 ; i < range*width ; i++){
    if(Math.floor(i/width)%2){
        windowArr.push(2)    
    }
    else{
        windowArr.push(1)
    }
}

for(let i = 0 ; i < range*width ; i++){
    if(Math.floor(i/width)%2){
        windowArr[i] -= 2
        windowArr[i-moveArr[Math.floor(i/width)]] += 2
    }
    else{
        windowArr[i] -= 1
        windowArr[i+moveArr[Math.floor(i/width)]] += 1
    }
}

console.log(windowArr.filter(el => el === 3).length*height)

+ Recent posts