알고리즘

백준 5585 - 거스름돈

문제 : www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 ..

2021.01.15 게시됨

Javascript

addEventListener 와 onclick

결론 부터 말하자면 addEventListener가 더 나은 방식입니다. addEventListener를 사용하세요. 두 개의 메소드는 아래와 같이 사용합니다. document.querySelector('.btn').onclick = () => { alert('click!'); } document.quertSelector('.btn').addEventListener('click', () => { alert('click!'); ), false); 1. 여러 이벤트 overwrite onclick는 한번에 하나의 이벤트만 할당할 수 있습니다. 그에 반해 addEventListener는 여러개의 이벤트를 overwrite할 수 있습니다. 아래의 예시를 봅시다. let eventHandler1 = () => {..

2021.01.12 게시됨

기타

매니지드(Managed)와 언매니지드(Unmanaged)란?

메모리의 종류에는 (Code, Data, Heap, Stack) 영역들이 있습니다. 각 영역의 역활은 아래와 같습니다. Code 실행할 코드(프로그램) Data 전역변수, 정적변수 Heap 사용자 동적할당 (런타임에 결정) Stack 지역변수, 매개변수 메모리 영역 중 프로그래머가 관리하는 Heap영역을 관리 여부에 따라 Managed와 Unmanaged로 나뉘게 됩니다. Unmanaged 언매니지드 대표적으로 C, C++로 메모리의 할당과 해제를 통해 직접 메모리를 관리하여 메모리 누수가 없게 관리해줘야 하지만 managed 에 비해 속도가 빠릅니다. Managed 매니지드 대표적으로 C#, Java 등으로 메모리의 할당과 해제를 통해 메모리 관리없이 언어 자체적으로 메모리를 관리합니다. 또한, 메모리..

2021.01.09 게시됨

Promise - 프로미스 포스팅 썸네일 이미지

Javascript

Promise - 프로미스

Promise는 JavaScirpt에서 비동기 작업을 위한 중요한 구성 요소입니다. 그리고 Promise를 이해하고 배우고 응용하기가 쉽지 않다고 생각할 수 있습니다. 걱정하지 마세요. Promise는 대다수의 많은 웹 개발자들에게도 어려운 부분입니다. 자바스크립트에서 Promise는 무엇인가? Promise는 자바스크립트의 특별한 객체입니다. Promise는 비동기 작업이 성공적으로 완료된 후 값을 생성하거나 time out, network error 등으로 인해 성공적으로 완료되지 않은 경우는 오류를 생성합니다. 성공 => 값(성공된), 오류 => 오류 값 성공적으로 작업을 완료하면 resolve 함수 호출을 가르키고 에러가 발생하면 reject 함수호출을 합니다. 다음과 같이 Promise 생성자를..

2021.01.01 게시됨

Javascript

reducer - 리듀서

대표적으로 Redux라는 라이브러리는 리듀서를 이용하여 대규모 웹 어플리케이션의 상태관리를 합니다. 그러나 리듀서 함수는 개별적인 데이터 구조의 상태를 변경하는 데도 사용할 수 있습니다. const add = (acc, cur) => acc + cur // 리듀서 함수 [1,2,3,4,5].reducer(add) // => 15 // 리듀서를 실행 시키는 방법 우리가 만든 리듀서 add() 함수는 두개의 인자인 acc(accumulator : 누적값) 와 cur(current value : 현재값)이 있습니다. Array.Reduce() 메서드는 리듀서를 실행하고 배열의 반복이 완료된 후 acc(accumulator : 누적값)를 return합니다. acc(accumulator : 누적값)는 선택적으로 ..

2020.12.29 게시됨

Web

DOCTYPE, lang속성, data- 속성, cookie, script태그 등

DOCTYPE이란? document type이란 뜻이고 DTD(문서 타입 정의)와 항상 관련된다. DTD: 특정 문서가 어떻게 구성되어야 하는지 정의합니다. HTML5 표준에 대한 DOCTYPE선언은 입니다. quirks mode: w3c표준은 아니지만 대부분 브라우저에서 지원하는 기능 DOCTYPE이 올바르지 않으면 켜진다. DOCTYPE없이 페이지가 실행되고있음을 알린다. 그리고 쿼크스 모드에 의해 브라우저가 추측을 통해 DOCTYPE 추측 후 렌더링한다. 여러 언어로 되어 있는 콘테츠의 페이지를 어떻게 제공하나요? HTML에 **lang**속성을 사용합니다. 사용자의 모국어로 안내 - 사용자가 쉽게 국가/언어를 변경할 수 있도록 텍스트를 포함한 이미지를 사용하는 것은 확작사능한 접근은 아니다. 단어..

2020.11.14 게시됨

TIL

[TIL] 2020-09-14

DOM (document object model) DOM에 수행하는 모든 연산은 document 객체에서 시작한다. document 객체는 DOM을 접근하기 위한 '진입점' document 객체를 통해서 어떤 노드에도 접근가능 → document .documentElement DOM Tree 꼭대기에 있는 document node → document.body → document.head ※ document.body 가 null 일 수 있다. 안에 스크립트에선 를 읽기 전이니 document.body에 접근하지 못하기 떄문에 null이 출력. childNodes, firstChild, lastChild로 자식 노드 탐색하기 자식노드 (child node, children) 는 바로 아래의 자식요소를 나타냄..

2020.09.15 게시됨

TIL

[TIL] 2020-09-10

호이스팅 ES2015 이후에 표준 명세된 용어이다. 자바스크립트 실행 컨텍스트가 어떻게 동작하는가에 대한 일반적인 생각 호이스팅을 변수 및 함수 선언이 물리적으로 작성한 코드의 상단으로 옮겨지는 것으로 알지만, 실제로는 그렇지 않는다. 변수 및 함수 선언은 컴파일 단계에서 메모리에 저장되지만, 코드에서 입력한 위치와 정확히 일치한 곳에 있습니다. 자바스크립트는 초기화가 아닌 선언만 끌어올립니다. (hoist) 자바스크립트 엔진은 인터프리팅 직전에 컴파일레이션이라는 과정을 거쳐갑니다. 컴파일레이션 코드 생성 과정에서 사전에 변수를 생성하고 메모리에 저장하는 동작을 하게되는데 이때 블록 안에서 호출할려던 전역변수와 같은 이름의 지역변수가 있다면 , undefined를 값으로 갖는 변수로 저장됩니다. 변수나 ..

2020.09.10 게시됨