본문 바로가기

분류 전체보기

(239)
[Javascript] json json에 관한 내용은 다음의 링크를 참고하였다. https://github.com/dream-ellie/learn-javascript/blob/master/notes/json.js 'use strict'; // JSON // JavaScript Object Notation // 1. Object to JSON // stringfy(obj) let json = JSON.stringify(true); console.log(json); json = JSON.stringify(['apple', 'banana']); console.log(json); const rabbit = { name: 'tori', color: 'white', size: null, birthDate: new Date(), jump: fun..
[Javascript] 클래스 클래스에 대한 내용은 다음의 링크를 참고하였다. 강의노트를 보며 공부하도록 하자. https://github.com/dream-ellie/learn-javascript GitHub - dream-ellie/learn-javascript: 자바스크립트 입문편 노트 컬렉션 ✨ 자바스크립트 입문편 노트 컬렉션 ✨. Contribute to dream-ellie/learn-javascript development by creating an account on GitHub. github.com 1. getter and setter에서 변수명에 ._를 붙이는 이유 this.age는 getter를 호출하고 = age는 setter를 호출한다. 여기서 setter의 내부를 들여다 보면 내부의 문장은 setter를 호출..
[Python] 튜플 정렬 파이썬에서는 튜플을 원소로 하는 리스트가 있을 때, 그 리스트를 정렬하면 기본적으로 각 튜플을 구성하는 원소의 순서에 맞게 정렬된다는 특징이 있다. 예를 들어 튜플이 3개의 원소로 구성된다면 모든 원소가 첫 번째 원소의 순서에 맞게 정렬되고, 첫번째 원소의 값이 같은 경우 두 번째 원소의 순서에 맞게 정렬되고, 거기에 두 번째 원소의 값까지 같은 경우 세 번째 원소의 순서에 맞게 정렬된다. 아래의 소스코드를 보자. 소스코드 a = [(5, 1, 5), (3, 5, 5), (3, 1, 9), (3, 1, 1)] a.sort() print(a) 결과 [(3, 1, 1), (3, 1, 9), (3, 5, 5), (5, 1, 5)] 또한 리스트의 원소를 정렬할 때는 sort() 함수의 key 속성에 값을 대입하..
[Python] 람다(Lambda) 표현식 람다 표현식은 익명 함수를 만들때 사용한다. 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다. 람다 표현식은 다음과 같이 사용한다. lambda 매개변수 : 표현식 바로 예시를 살펴보자. 1. def() 우리는 두 수를 더하는 함수를 만들때 다음과 같이 작성한다. >>> def hap(a, b): ... return a + b ... >>> hap(10, 20) 30 이를 람다 표현식으로 쓰면 다음과 같이 간결하게 쓸 수 있다. >>> (lambda a,b: a + b)(10, 20) 30 2. map() 람다식은 map()함수와도 응용하여 사용할 수 있다. >>> map(lambda a: a ** 2, range(5)) [0, 1, 4, 9, 16] >>> list(map(..
[JavaScript] var를 사용하면 안되는 이유 var 변수는 ES6 문법 이전에 사용하던 mutual 변수 선언 방법이다. 하지만 이는 많은 문제가 있어서 현재는 let만 써야만 한다. 그럼 어떤 문제가 있을까? 1. Hoisting (변수를 선언하기도 전에 사용이 가능) MDN에서 정의한 Hoisting의 의미를 알아보자. 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. 쉽게 말해, 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는것이다. var를 사용하면 다음과 같은 미친짓이 가능하다. 직접 확인해보자. age = 7; var age 위와 같이 변수를 선언하기도 전에 사용을 해도 정상적으로 출력이 가능하다. 이 경우 선언 전에도 에러가 나지 않아 사용이 가능하기..
[JavaScript] html에서 js파일을 가장 효율적으로 포함하는 방법 이 글은 다음의 유튜브 영상을 참고하여 작성하였다. https://www.youtube.com/watch?v=tJieVCgGzhs&t=1s 1. head 위 방법은 코드 순서대로 html코드를 parsing하다가 js파일을 만나면 서버에서 다운받아 실행한 다음에 다시 parsing을 시작한다. 단점: js파일의 크기가 너무 크고 인터넷이 느리다면 웹페이지를 로딩하는데까지 오래걸린다. 2. body 위 방법은 브라우저가 html 코드를 파싱해서 준비가 끝난 후에 마지막에 script를 받아오는 방식이다. 장점: js파일은 받아오기 전에도 페이지의 컨텐츠를 보여줄 수 있다. 단점: 만약 웹사이트가 js에 매우 의존적(의미있는 컨텐츠를 보려면 js가 필요하다면)이라면 의미가 없다. 3. head + async..
[Algorithm] 특정 거리의 도시 찾기 문제는 다음의 링크에서 확인하자. https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 이 문제를 해결하기 위해 다음과 같은 아이디어를 생각해보았다. 일반적으로 그래프에서 모든 간선의 비용이 동일할 때는 BFS를 이용하여 최단 거리를 찾을 수 있다. 다시 말해 이 문제는 '모든 도로의 거리는 1' 이라는 조건 덕분에 너비 우선 탐색을 이용하여 간단히 해결할 수 있다. 먼저 특정..
[Algorithm] 치킨 배달 문제는 다음의 링크에서 확인하자. https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 이 문제를 풀기 위해 다음과 같은 아이디어를 생각해보았다. 전체 치킨 집의 수에서 M개를 선택하는 것은 조합의 개념이므로 조합을 사용하기로 했다. 그렇게 치킨집을 선택할 수 있는 모든 경우를 구한 후, 각 경우에 따른 모든 집과 해당 치킨집 까지의 거리의 합을 구해 그 중 최솟값을 답으로 출력하도록 코드를 짜보았다. # 치킨 배달 from i..