매우 어렵게 구현하여 풀긴하였으나, 스택을 사용하면 매우 직관적으로 편하게 구현할 수 있었다. 스택을 사용하여 문제를 푼 경험이 적어서 스택을 떠오르지 못한 것 같다 스택을 사용한 문자열 문제를 몇문제 풀어봐야할 것 같음 내 풀이 : 빡센 구현 알고리즘 앞에서부터 검사하다가 폭발문자열과 일치하는 문자열이 발견되면, 그 문자열을 폭파시키고...
함수형 프로그래밍
부수 효과가 없는 순수함수를 1급 객체로 간주하여 파라미터로 넘기거나 반환값으로 사용하는 것을 가능하도록 하여, 참조 투명성을 지키도록 하는 프로그래밍 패러다임 순수 함수형 프로그래밍만으로 개발을 하기에는 무리가 있다. 따라서 적절히 조절해가면서 개발을 해나가자. 요약 함수형 프로그래밍의 가장 큰 특징 두 가지 immutable data ...
알고리즘 팁(WIP)
구조 관련 정렬된 배열의 앞 뒤로 새로운 요소를 삽입 해야되는 경우 필요한 길이의 2배길이의 배열을 선언한 다음, (start, to)로 인덱스를 트래킹해가면서 넣는다. 이때 start, to의 초깃값은 2배 길이의 배열의 딱 중간이어야함(그래야 최솟값만 들어가거나, 최댓값만 들어갈때도 배열이 터지지 않음) 소수판별 floor(...
Object Oriented Programming
OOP는 너무 거대한 개념이라 다 다루지는 못하지만 간단히만 알아보자 간단한 설명 OOP : 중심적 프로그래밍 패러다임. 현실 세계의 사물들을 객체라고 보고, 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍하는 것(추상화) 장점 OOP로 작성한 코드는 재사용성이 높다. ...
React v18 주요 변경점
React v18의 정식 출시가 코앞에 있고, 가장 큰 변경점 중 하나가 서버사이드 렌더링에 관한 내용이라는 소식을 듣고 마침 SSR 에 대해 흥미가 있던 터라 한번 React v18의 주요 변경점이 뭔지 공부해보기로 했다. 먼저 기존의 React v17을 v18로 마이그레이션 하는 것은 문제 없다고 한다. 리액트 팀에서 이 부분을 특히 신경써서 만...
좋은 코드란 무엇인가?
좋은 코드란 무엇일까? 일반적으로 좋은 코드라고 하면 다음 세가지를 얘기한다. 읽기 좋은 코드 테스트가 용이한 코드 중복이 없는 코드 그럼 왜 위 세가지가 갖춰진 코드를 좋은 코드라 하는 걸까? 그리고 어떻게 이 세가지를 지키며 코드를 작성할수 있을까? 왜 좋지 않은 코드가 생산되는가? 우리는 항상 좋은 코드를 작성하기 위해 노...
css 선택자
* 아무 표시 없이 사용하면 페이지에 있는 모든 요소가 대상 * { margin : 0; padding : 0; } 특정 요소의 모든 자식 요소에 적용할 수도 있음 #container * { border : 1px solid black; } 주의점 : 남발할 시 성능저하를 불러일으킴 #X id를 대상으로 삼음 #...
redux-saga concepts
Declarative Effects import { takeEvery } from "redux-saga/effects"; import Api from "./path/to/api"; function* watchFetchProducts() { yield takeEvery("PRODUCTS_REQUESTED", fetchProducts); } fu...
generator 문법
Generator 문법 자바스크립트의 기능이며 Redux-saga의 핵심 기능이다. 함수를 특정 구간에 멈춰놓고, 원할때 다시 돌아가게 할 수 있음. 또 반환을 여러번 할수 있다. 예시 function* generate() { yield 1; yield 2; yield 3; return 4; } const generato...
Decision Tree를 이용한 서울 미세먼지 예측 모델
소스코드 깃허브 링크 모델 소개 중국 도시별 미세먼지 PM10 농도와, 서울의 기온, 풍속, 습도를 가지고, 서울의 하루 뒤 미세먼지 PM10 농도를 예측하는 모델 서울의 기온, 풍속, 습도는 현재(중국 미세먼지 데이터 날짜와 일치)와 다음날(서울 미세먼지 데이터 날짜와 일치) 데이터를 모두 넣음. ...