Continuous Subarray Sum

https://leetcode.com/problems/continuous-subarray-sum/description/

좀, 실수가 많았던 문제
- 부분 합이 n*k (n은 정수) 가 되는 걸 정확히 인지하고 차근차근 풀어야했음

실수한 케이스
- 합이 0이 되는 경우와
- k가 0인 경우



sub-array-sum-equals-k

문제 해설 (링크)

https://github.com/songjein/algorithm/blob/master/subsum.py

아이디어
- 누적합
- 딕셔너리(해쉬)

뭔가 내가 알고있던 DP문제에서 한 발짝 더 나아가 생각해야 했던 문제

플라스크와 웹서버 앱서버의 관계? 서버


할일 관리 앱 Vue

(vue.js 입문)

투두리스트 앱 프로젝트 하면서 감 잡기

브라우저 저장소
- 로컬 스토리지
- 세션 스토리지
- 인덱스드 디비 등

<meta name="viewport" content="width=device-width, initial-scale=1.0">
태그를 추가하면 기기의 너비만큼 웹 페이지의 너비를 지정 후, 페이지의 줌(zoom) 레벨을 1.0으로 설정한다.

src/ 디렉터리 밑에 components/ 디렉터리 만들어서 컴포넌트 관리

앱 규모가 커저 기능별 관리가 필요하다면 components/기능/컴포넌트.vue 같은 구조를 씀

컴포넌트 생성 후에는
최상위 컴포넌트인 App.vue에 등록

SFC 체계에서 특정 컴포넌트에서 다른 위치의 컴포넌트 불러올 때는
import 객체 from '위치'; 
를 해줘야됨

이렇게 각 컴포넌트를 임포트 한 이후에
지역 컴포넌트 등록 방식으로 등록하면 된다.


<style scoped> 같이 scoped를 적어주면 해당 스타일을 해당 컴포넌트에만 적용한다고 선언 할 수

this 는 해당 컴포넌트를 가리킴

스타일 inline-block 에 관한 설명 


로컬스토리지에 저장된 할일들을 읽어서 뷰의 데이터에 저장할 땐
created 라이프 사이클 훅이 적합하다


v-for를 이용해서 루프를 돌릴 때
인덱스가 필요하다면?
- v-for 디렉티브에 index를 추가
- index는 v-for 디렉티브에서 기본적으로 제공하는 변수
- v-for로 반복한 요소는 뷰에서 모두 내부적으로 인덱스를 부여


컴포넌트를 나눠서 하다보니
중간에 발생하는 문제는
컴포넌트간 통신 문제.
TodoList 컴포넌트에서 리스트에 대한 뷰를 담당하다보니
TodoInput(추가)이나 TodoFooter(모두삭제)에서 리스트에 대한 변형(스토리지에)을 해도 TodoList가 알 방법이 없다!


따라서 컴포넌트 구조화와 통신 방법을 익혀야 한다.

정답?은

*************************************************************************************
최상위 루트 컴포넌트에 todoItems라는 뷰 데이터 속성을 정의하고
하위 컴포넌트에는 props로 전달한다.

그리고 추가 삭제 조회 연산을 모두 App 컴포넌트에서 한다.
하위 컴포넌트들은 그 데이터를 표현하거나 데이터 조작에 대한 요청(이벤트 발생)만 한다.
*************************************************************************************


이벤트 부분 햇갈려서 메모
TodoInput 컴포넌트에 v-on:addTodo="addTodo" 라고 디렉티브를 적용했음
-> Input컴포넌트에는 버튼을 클릭 했을 때 addTodo라는 이름으로 이벤트를 발생시키면 (왼쪽)
--> 부모의 addTodo 메서드(오른쪽)가 해당 이벤트를 받아 실행할 수 있는 구조


컴포넌트 간 이벤트 전달 복습
: 하위 컴포넌트에서 발생시킨 이벤트를 상위 컴포넌트에서 받아 상위 컴포넌트의 메서드를 동작시키는 것





v-for 디렉티브에 지정하는 :key 속성 (v-bind:key)
- v-for 디렉티브를 지정할 때 :key 속성을 꼭 지정해주는 것이 좋음
- 뷰는 목록의 특정 아이템이 삭제되거나 추가 될 때, 돔에서 나머지 아이템 순서를 다시 조정하지 않고 프레임워크 내부적으로 전체 아이템의 순서를 제어 (브라우저의 돔 조작시간 최소화)

ex) 1000개의 아이템 중 앞에서 2번째를 삭제하면 988개 아이템을 이동해야함
-> 브라우저의 렌더링 부담
--> 뷰 프레임워크에서 순서를 제어하는 경우 나머지 아이템 움직이지 않고 내부적으로 아이템 순서만 재조정하여 돔 이동 최소화

따라서 :key 속성을 지정해라

- 참고로 애니메이션 적용할 때 transition-group 안의 대상 태그에 :key 속성을 지정해야함



transition-group 에 지정한 name속성은
스타일을 지정할 때 활용 됨



vim 에 vue 플러그인 설치 Vue


1 2 3 4 5 6 7 8 9 10