간단하게 생각하면 9명의 난쟁이에서 7명을 무작위로 선택했을 때, 난쟁이 키의 총 합이 100 인 경우의 수를 구하면 된다.조합의 원리로, 난쟁이 키가 100인 경우는 9C7 으로 총 36개의 조합이 나온다.여러모로 삽질을 했지만, 사실 가장 쉽게 푸는 방법은 combinations 라이브러리를 이용하는 것 이었다. 9개중 7개의 숫자를 추출해서, 합이 100이되는 첫 조합을 리스트로 반환하여 출력한다.from itertools import combinationsa = [int(input()) for __ in range(9)]a.sort()for comb in combinations(a, 7): if sum(comb) == 100: c = list(comb) for c i..
Quick Sort피벗을 실행하여 배열에서 두 그룹으로 나눈다피벗 보다 작은 원소는 오른쪽에서 왼쪽으로, 피벗 보다 큰 원소는 왼쪽에서 오른쪽으로 이동한다.왼쪽 포인터와 오른쪽 포인터가 교체하는 지점에서, 왼쪽과 오른쪽 포인터 값을 교환한다그룹 내에서 새로운 피벗을 생성하고, 그 피벗을 기준으로 정렬이 마무리 될때까지 위 과정을 반복한다퀵 정렬은 큰 문제를 작은 문제로 나누어 푸는 과정의 반복으로, 시간복잡도는 O(n log n)이다. 다만 매번 1개의 원소와 나머지 원소로 나뉘면 최악의 경우의 시간복잡도는 O(n^2) 이다. 원소 수가 적은 경우에는 다른 방식으로 정렬하는 것이 더 유리하다.재귀적인 구현에서는 처음에 전체 배열을 재귀 함수의 매개변수로 전달하며, 각 단계에서 피벗을 기준으로 왼쪽 오른쪽..
컴퓨터 시스템의 기초에 대해 알아보자. 사용자가 명령어를 입력하면 그 화면이 출력되기 까지의 절차까지를 알아보겠다. 정보의 단위소스 프로그램은 0과 1로 이루어진 비트의 연속이다. 바이트는 8 비트 단위로 구성된다. 모든 텍스트 파일은 ascii 문자로 이루어진 파일을 의미하며, 그 외 모든 파일은 바이너리 파일이다. 컴파일 시스템컴파일이란?우리가 보는 프로그램은 사람이 이해하고 쓸수 있는 형태로 되어 있지만, 컴퓨터에게 일을 시키기 위해서는 저급 기계어로 바꿔줘야 한다. 이 과정을 컴파일이라 한다. 컴파일은 다음과 같은 단계를 거친다. 전처리 단계 : hello.c -> hello.i 라는 새로운 C 프로그램이 생성되며, 본래의 프로그램을 #문자로 시작하는 디렉티브에 따라 수정한다컴파일 단계 : h..
웹 서비스에서의 인증 방식과 보안 개념을 세션, 쿠키, JWT로 알아보자. 1. Stateless & Stateful 2. 세션 & 쿠키 기반 인증 3. JWT 기반 인증 4. 세션과 JWT의 차이점 5. 보안 개념아래 다뤄볼 개념에 대한 미리보기로 개념에 대한 연관관계는 다음과 같이 볼 수 있다.인증 방식├── Stateful 인증 (서버가 상태를 유지)│ ├── 세션 기반 인증 (Session)│ └── 쿠키 기반 인증 (Cookie)│└── Stateless 인증 (서버가 상태를 유지하지 않음) └── JWT 기반 인증 (JSON Web Token) ├── Access Token (단기 인증, API 요청 시 포함) └── Refresh Token (장기 인증..
웹 애플리케이션의 유형과 개념에 대한 정리. 각 애플리케이션의 구조, 페이지 전환 방식, 데이터 관리 방식, 사용자 경험 등에 따른 분류와 각각의 장단점에 대해 알아보자 1. 웹 애플리케이션의 기본 구조 : SPA & MPA 2. 웹 렌더링 방식 : CSR & SSR 3. 정적 렌더링 : SSG & ISR 4. 최신 웹 아키텍쳐 아래 다뤄볼 개념에 대한 미리보기로 개념에 대한 연관관계는 다음과 같이 볼 수 있다. MPA (전통적인 방식) ├── SSR (서버에서 렌더링하여 SEO 최적화) ├── CSR (클라이언트에서 렌더링, 인터랙티브한 UI) └── SSG (정적 페이지 미리 생성하여 배포) ├── ISR (정적 사이트 + 부분적 실시간 업데이트) └── JAMstack (SS..
2023.02~2023.04 교육과정 정리 파일 및 디렉토리 간의 차이점 비교 diff [파일1] [파일2]: 두 파일 간의 내용 차이점 출력cmp [파일1] [파일2]: 두 파일을 바이트 단위로 비교comm [파일1] [파일2]: 두 파일의 공통 부분과 차이점 출력 파일 압축 및 묶기 1. 파일 압축/해제gzipgzip [파일명]: 파일 압축 (*.gz 확장자)gzip -d [파일명] 또는 gunzip [파일명]: 압축 해제bzip2bzip2 [파일명]: 파일 압축 (*.bz2 확장자)bzip2 -d [파일명] 또는 bunzip2 [파일명]: 압축 해제xzxz [파일명]: 파일 압축 (*.xz 확장자)xz -d [파일명] 또는 unxz [파일명]: 압축 해제compress/uncompresscompre..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.