본문 바로가기

About

(221)
[백준 15686번] 치킨 배달(Python) https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제 더보기 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말..
[Pytorch] Linear Regression - 파이토치를 이용한 선형회귀분석 선형 회귀 분석이란? 통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다 - 위키백과 선형 회귀 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 독립변수 1개와 종속변수 1개를 가진 선형 회귀의 예 통계학에서, 선형 회귀(線型回歸, 영어: linear regression)는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 ko.wikipedia.org 간단하게 말해서 주어진 X(데이터)을 가장 잘 표현할 수 있는 하나의 ..
[Python] Iterable & Iterator iter 함수 개발을 하다 보면 하나 이상의 값을 저장하고, 저장된 값들을 불러오는 일은 매우 흔하고 중요하다. Python에서는 다음과 같이 for loop을 기반으로 이러한 작업을 수행한다. numbers = [1, 2, 3, 4] for i in numbers: #numbers에 저장된 내용을 하나씩 출력 print(i, end = ' ') 위의 방법만으로도 대부분의 작업을 수행할 수 있지만, 조금 더 유연한 방법이 있다. numbers = [1, 2, 3, 4] ir = iter(numbers) #iterator 객체를 얻는 방법 print(next(ir)) # next(ir) : iterator 객체를 통해 값을 하나 가져옴(첫번째 값) print(next(ir)) # 두 번째 값 반환 후 출력..
[Python] Counter (단어 개수 세기) Counter Sequence Type의 Data element들의 개수를 dict 형태로 반환하는 객체 collections로 부터 import 하여 사용 from collections import Counter 컨테이너에 동일한 값이 몇 개있는지 쉽게 파악할 수 있다. from collections import Counter c = Counter() c = Counter('CocaCola') print(c) Dict type, keyword parameter 등 모두 처리 가능하다. dict를 이용하여 단어들의 개수를 지정하여 원하는 단어를 원하는 개수만큼 가지는 리스트를 생성할 수 있다. from collections import Counter d = {'red' : 4 , 'blue' : 2 } ..
[MongoDB] Session 저장/삭제하기 - 로그인/로그아웃 구현(Node.js, express-session,Mongoose) Node.js에서 express-session과 mongoose를 이용하여 login session을 저장하고, 로그아웃 시 삭제하는 예제이다. 1. 모듈 설치 우선 express-session, mongoose, mongoose-session을 설치하여야 합니다. express-session 설치 npm install -s express-session mongoose 설치 npm install mongoose mongoose-session 설치 npm install mongoose-session 2. express-session, mongoose 설정 app.js 에서 express-session과 mongoose를 불러옵니다. var express_session = require('express-se..
[Docker] Docker의 작동 구조 (4) (이미지 데이터 관리) Docker 이미지의 데이터 관리 장치 'Copy on Write'란 복사를 요구 받으면 바로 복사하지 않고 원래의 데이터를 그대로 참조시켜, 원본 또는 복사 어느 쪽에 수정이 가해진 시점에 비로서 새로운 빈 영역을 확보하고 데이터를 복사하는 것을 뜻한다. Docker에서는 'Copy on Write' 방식으로 컨테이너의 이미지를 관리한다. Docker의 이미지를 관리하는 스토리지 디바이스로는 다음과 같은 것들이 있다. AUFS 다른 파일 시스템의 파일이나 디렉토리를 투과적으로 겹쳐서 하나의 파일 트리를 구성할 수 있는 파일 시스템. 단, 현재 AUFS는 표준 Linux 커널의 일부가 아니다. Btrfs Linux용 Copy on Wirte 파일 시스템으로, Oracle에 의해 2007년 발표되었다. B..
[Docker] Docker의 작동 구조 (3) (네트워크 구성) 네트워크 구성(가상 브리지/가상 NIC) Linux는 Docker를 설치하면 서버의 물리 NIC(Network Interface Card)가 docker()라는 가상 브리지 네트워크로 연결된다. 이 docker()는 Docker를 실행시킨 후에 default로 만들어진다. Docker 컨테이너가 실행되면 컨테이너에 172.17.0.0/16이라는 서브넷 마스크를 가진 프라이빗 IP 주소가 eth0으로 자동으로 할당된다. 이 가상 NIC는 OSI 계층의 Layer 2인 가상 네트워크 인터페이스로, 페어인 NIC와 터널링 통신을 한다. 가상 NIC(vethxxx)는 컨테이너에서는 eth0으로 인식된다. Docker 컨테이너와 외부 네트워크가 통신을 할 때는 가상 브리지 docker()와 호스트 OS의 물리 N..
[Docker] Docker의 작동 구조 (2) (cgroups) 릴리즈 관리 장치(cgroups) Docker에서는 물리 머신 상의 자원을 여러 컨테이너가 공유하여 작동된다. 이 때 Linux 커널의 기능인 'control groups(cgroups)' 기능을 사용하여 자원의 할당 등을 관리한다. cgroups는 프로세스와 스레드를 그룹화하여, 그 그룹 안에 존재하는 프로세스와 스레드에 대한 관리를 수행한다. (예를 들어 호스트 OS의 CPU나 메모리와 같은 자원에 대해 그룹별로 제한을 둘 수 있다. ) cgroups로 관리할 수 있는 주요한 일은 다음과 같다. cgroups의 주요 서브 시스템 항목 설명 cpu cpu 사용량을 제한 cpuacct cpu 사용량 통계 정보를 제공 cpuset cpu나 메모리 배치를 제어 memory 메모리나 스왑 사용량을 제한 dev..
[백준 20057번] 마법사 상어와 토네이도(C++) https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 문제 더보기 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 의미한다. 토네이도를 시전하면 격자의 가운데 칸부터 토네이도의 이동이 시작된다. 토네이도는 한 번에 한 칸 이동한다. 다음은 N = 7인 경우 ..
[Python] Collections - defaultdict (단어 개수 세기) defaultdict Dict type의 값에 기본 값을 지정할 수 있는 dictionary 클래스 Dict의 신규 값 생성 시 유용한다. from collections import defaultdict 기존의 Dict d = dict() print(d['first']) 기본 dict를 사용하게 되면 key = 'first'인 item이 없기 때문에 출력하였을 때 에러가 발생한다. defaultdict 사용 from collections import defaultdict d = defaultdict(lambda : 0) #Default 값을 0으로 지정 print(d['first']) 하지만 defaultdict를 이용하여 기본 값을 0으로 지정하고 출력하였을 때 key = 'first'인 아이템을 추가..