전체 글 17

[백준] 5557 1학년 node/javascript(자바스크립트)

(끝에 출력때문에 고생해서 블로그에 정리해두려고 한닷) 문제링크 : https://www.acmicpc.net/problem/5557풀이 및 사고모든 케이스를 깡으로 계산하면 2^100( +, -로 두 가지 경우가 계속 발생)로 시간 초과다.근데 문제에서 0에서 20까지만 결과값을 유지한다고 주어져서 최대 100*21의 복잡도를 가지는 배열로 풀 수 있었다. 01...20첫 번째 값    두 번째 값    ...    마지막 값     요런 배열을 만들어서 이전 줄을 다 순회하면서 1이상의 값(해당 경우의 수)일 때 현재 값으로 +/-한 값(인덱스)에 경우의 수를 더해주면 된다.(문제를 대충 읽어서 주어진 출력을 다 써서 0~20 사이의 값을 만들면 되는줄 알았는데 그게 아니고 입력 제일 마지막 값이 되..

TIL/알고리즘 2024.08.03

[백준] 2412 암벽 등반 node/javascript(자바스크립트)

(블로그로 정리된 자료가 없어서 문제 푸는 분들에게 도움이 될까 남겨봅니닷) 문제 링크 : https://www.acmicpc.net/problem/2412풀이 및 사고좌표를 받아서 y값, x값 순으로 정렬했다. 그리고 좌표가 정렬된 배열에서 index를 가지고 bfs를 돌렸다. y값 차이가 2초과면 멈추게 했다. 그리고 올라가기만 한다는 보장이 없어서 해당 index보다 앞과 뒤 둘 다 탐색했다.방문 처리는 좌표가 정렬된 배열과 같은 길이의 1차원 배열로 처리했다. (처음에는 전체 board를 저장하는 2차원 배열을 만드려고 했다가 x좌표가 1,000,000이고 y좌표가 200,000인데 메모리 제한이 128MB라 공간 복잡도 초과가 떴다.)코드const input = require('fs').read..

TIL/알고리즘 2024.08.02

[디자인 패턴] 프록시(Proxy) 패턴

프록시 패턴객체가 다른 대상 객체에 접근하기 전에, 그 접근의 흐름을 가로채서 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층을 가지는 디자인 패턴보통 프록시 서버로 이 디자인 패턴을 알고 있음프록시 서버메인 서버와 클라이언트 사이에 존재하는 서버예시1) 메인 서버가 http를 사용할 때, 프록시 서버를 이용해 https로 바꿔 서비스 가능예시2) DDoS 같은 공격적인 트래픽을 필터링하기 위한 프록시 서버(cloudflare)예제 구현function createObject(target, callback) { const proxy = new Proxy(target, { set(obj, prop, value) { if (value !== obj[prop]) { cons..

TIL/CS 2024.07.09

[백준] 5875 오타 python(파이썬)

풀이 및 사고일단 누적합이라는 걸 알고 풀긴했다.. ㅎ문제에서 최대 한번의 오타를 냈다는 말이 있다. 이 말로 케이스(나올 수 있는 누적합 경우의 수)가 확 줄어들기 때문에 꼭 기억하고 풀어야 한다.처음 생각으로는 여는 괄호를 1, 닫는 괄호를 -1로 체크한 배열을 만들었다. 예시는 닫는 괄호가 더 많은 케이스라 누적합 처리를 하면 배열의 총합이 -2가 나온다.()(()))) ⇒ [1, -1, 1, 1, -1, -1, -1, -1] ⇒ [1, 0, 1, 2, 1, 0, -1, -2]여기서 문제가 어떤 괄호를 고쳐야 올바른 괄호쌍이 될 수 있는지 판단해야 하는 것이다.나올 수 있는 케이스를 먼저 생각해보면 누적합이 0, 2, -2인 케이스 밖에 없다.올바른 괄호쌍이거나 여는 괄호가 1개 많은 경우이거나 닫..

TIL/알고리즘 2024.07.09

[디자인패턴] 팩토리 패턴

팩토리 패턴상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위클래스는 객체 생성에 대한 구체적인 내용을 결정하는 패턴상위 클래스에서 객체 생성방식에 대해 관여하지 않아 유연성이 높음객체 생성 방식은 하위 클래스에서 관리하므로 유지보수가 용이함예시class Factory { // 상위 클래스 static createClass(type) { const factory = factoryList[type] return factory.createClass() // 하위 클래스 로직에 관계없음 }}class Lower1 { constructor() { this.name = "lower1" }}class Lower2 { con..

TIL/CS 2024.05.17

[디자인패턴] 싱글톤 패턴

싱글톤 패턴싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴인스턴스 생성 시 발생하는 비용을 줄이기 위해 사용함인스턴스 생성에 많은 비용이 드는 데이터 연결모듈에 많이 쓰임의존성이 높아지고 TDD를 할 때 불편함// 싱글톤이 아닌 경우 두 인스턴스가 다름 class NotSingleton { constructor(a) { this.value = a; }}const a = new NotSingleton(1);const b = new NotSingleton(1);console.log(a === b) // false// 싱글톤인 경우 인스턴스를 공유함class Singleton() { constructor() { if (!Singleton.instance)..

TIL/CS 2024.05.16

npm install 에러(peerDependencies)

💡 예전에 과제 테스트를 쳤던 프로젝트를 다시 풀어보고자 클론 받은 후 npm install을 하려다 보니 오류가 생겼다. 해결하는 과정에서 배울 게 있을 것 같아서 기록해보려고 한다!오류 메세지는 이렇다. 해당 오류 정보에서는 msw "1.2.1" 을 설치하는 도중에 typescript 5.1.6 에서 문제가 발생했다고 나와있다.난 그래서 typescript를 강제로 설치하면 되지 않을까 생각했지만, 그래도 이를 계기로 에러 상황의 해결법과 원인에 대해 공부해보려고 한다. 📕 이는 2021년 2월 출시된 npm 7버전부터 peerDependencies를 자동으로 설치하는 기능 때문이다.Peer dependenciesAutomatically installing peer dependencies is a..

TIL/기타 2024.05.15

Docker 란?

Docker란어플리케이션을 패키징 할 수 있는 툴컨테이너라는 소프트웨어 유닛 안에 어플리케이션과 구동하기 위한 시스템 툴, 환경설정과 dependencies를 하나로 묶어서 다른 OS, PC에서 안정적으로 구동할 수 있게 하는 툴 => 그렇다면 vm과 같지 않나??라는 물음이 생김VM vs DockerVM : Infrastructure 위에 Hypervisor 소프트웨어(vmware, VirtualBox)에서 각각의 가상머신을 만듬 => 각 가상 머신은 OS를 포함해 굉장히 무거움(리소르를 많이 잡아먹음)Conatainer : Infrastructure 하드웨어에 설치된 운영체제, Host OS에서 Container Engine 소프트웨어를 설치에 각 컨테이너 별로 독립된 환경에 어플리케이션을 구동하게 ..

TIL/기타 2024.04.17

Javascript 동등 비교

React 동등 비교를 공부하며 Javascript 동등 비교에 대해 다시 정리했다자바스크립트 동등 비교원시타입(primitive type)과 객체타입(object/reference type)이 존재원시타입boolean, null, undefined, number, string, symbol, bigintbooleantrue와 false 외에도 해당 논리로 취급되는 값이 존재falsy : 조건문 내부에서 false로 취급되는 값0, undefind, 빈 문자열 등truthy1중요한 점은 객체({}, [])는 참조를 하기 때문에 true 값으로 취급Object.isES6부터 ‘===’ 동등 비교가 가지는 한계를 극복하기 위해 만들어짐두 값이 같은 값인지 결정함둘 다 undefined둘 다 null둘 다 t..

TIL/javascript 2024.04.03

React의 동등 비교

리액트에서 memo 사용 시 비교 방법에 대해 궁금해서 공부해봤다객체 간 얇은 비교javascript의 Object.is 로 비교 ('=="과 '==='이 아님)2024.04.03 - [TIL/javascript] - Javascript 동등 비교 Javascript 동등 비교React 동등 비교를 공부하며 Javascript 동등 비교에 대해 다시 정리했다 자바스크립트 동등 비교 원시타입(primitive type)과 객체타입(object/reference type)이 존재 원시타입 boolean, null, undefined, number, string,likemath1997.tistory.comObject.is는 ES6의 기능이기 때문에 react에서는 이를 구현한 폴리필(polyfill)을 함께 ..

TIL/react 2024.04.03