목록전체 글 (166)
개발새발
list(map(int, input().split()))구문은 입력된 문자열을 공백을 기준으로 분리한 후, 각 요소를 정수형으로 변환하여 리스트로 만드는 코드이다.deque(range(1, N+1))은 1부터 N까지의 숫자를 포함하는 덱을 생성하는 코드이다. len() 함수는 파이썬에서 리스트, 문자열, 튜플 등과 같은 시퀀스(sequence) 객체의 길이를 반환하는 함수이다. 이 함수는 시퀀스 객체에 포함된 요소의 수를 반환하며, 빈 객체의 경우 0을 반환한다. from sys import stdin과 import sys는 표준 입력을 효율적으로 다루기 위해 사용하는 모듈 임포트 구문이다.extend()는 리스트에 다른 리스트나 반복 가능한 객체를 추가하는 파이썬 내장 함수이다. 이 함수는 기존 리스트..

주요 키워드dp, memoization(메모이제이션) , 반복/재귀 → 반복되는 계산을 막기 위해서.가장 대표적인 예 → 피보나치 수열 f(n)=f(n-1)+f(n-2)이러한 식으로 겹치는 계산이 발생한다면 이를 그때그때 다 계산하지않고 한 번 계산한 값을 계속 사용!피보나치 수열 피보나치 수열은 제2항까지는 1, 제3항부터는 바로 앞의 두 항을 더한 수로 정의(0), 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...프로그래밍에서 피보나치 수열은 보통 재귀를 통해 표현int fibo(int n) { if (nfibo(6)은 어떻게 실행될까? fibo(4)의 연산이 두 번,fibo(3)의 연산이 세 번 진행되는 것을 볼 수 있다. 이미 진행됐던 연산인데도 불구하고!!! 위의 ..
브루트포스 무식한 힘 가능한 모든 경우에 대해 탐색 구현이 쉽고, 해가 존재한다면 무조건 답을 찾을 수 있음 그러나, 모든 경우에 대해 탐색하기 때문에 시간 복잡도 효율성 낮음 → 메모리 사용량 많음 장단점이 명확 ⇒ 사용해야할 문제와 그렇지 않은 문제도 확실 가장 기본적인 알고리즘. 이를 바탕으로 다른 알고리즘으로의 확장 예를 들어, 비밀번호가 4자리이고, 숫자로만 이루어져 있다면 비밀번호를 풀기 위해서 0000부터 9999까지 다 입력해보면 된다. 경우의 수가 10000가지 이므로 이는 컴퓨터에서 충분히 빠른 처리가 가능한 연산이다. 하지만 비밀번호가 12자리라면 범위가 000000000000부터 999999999999이므로 경우의 수가 1000000000000가지이다.python의 경우 1억 개의 ..
스택(Stack) 쌓여 있는 책/상자 같은 입출력 구조 후입선출 구조 마지막으로 들어온 데이터가 가장 위에 쌓이게 되고 가장 먼저 나간다. Stack에 A,B,C,D 순서대로 삽입 -> 삭제 연산 진행 입출력 연산은 스택의 맨 위에서만 발생 , 중간에 삽입/삭제 불가 top (스택 상단) : 스택의 맨 윗 부분, 입출력이 이루어짐 bottom (스택 하단) : 스택의 바닥 부분 element (요소) : 스택에 저장되는 데이터 empty stack (공백 스택) : 요소가 없는 스택 -> 입출력 불가 자료의 출력이 입력의 역순으로 이루어져야 할 경우에 유용 class Stack: def __init__(self): self.items = [] #데이터 저장을 위한 리스트 준비 def push(self, ..
그래프 기본 개념(+트리) Graph는 일련의 노드(node, vertex, 정점) 집합 V와 엣지(edge, 간선) 집합 E로 구성된 자료구조 보통 정점에는 Data가 들어가고, 간선은 그 Data들 간의 관계를 표현( G = (V, E) ) 간선으로 연결된 두 정점은 관계가 있다고 말할 수 있으며, 이를 인접(Adjacent)하다고 한다. → 그래프의 구성 요소 vertex(정점) edge(간선) 트리는 사이클이 존재하면 X. 즉, 그래프가 더 큰 범위 그래프의 특정한 경우가 트리인 것! 반대로 그래프의 모든 정점이 각각 연결되어있다면 - 완전그래프 그래프의 종류 방향 그래프 VS 무방향 그래프 가중치 그래프 완전 그래프 부분 그래프 vs 신장 그래프(spanning tree) *degree 방향 그..
'HTML이란' 하이퍼텍스트:웹에서 자유롭게 오갈 수 있는 링크를 의미 하이퍼 텍스트의 줄임말이 'HT' make up은 표시하다라는 뜻으로 웹브라우저에 내용을 보여주는 텍스트,이미지,영상 등의 위치를 표시하는 것을 의미. 약속된 꼬리표 태그를 붙이는 행위를 마크업이라고 한다. 그러한 것들을 사용한 언어라고해서 'html'이다. 'html'문서의 기본 구조 :현재 문서가 HTML5 언어로 작성한 웹문서라는 뜻 : HTML은 웹문서의 시작을 나타냄. lang=ko는 이 언어가 한국어라는 것을 알려줌. :웹 브라우저가 웹문서를 해석하는데 필요한 정보를 입력하는 부분 :(이부분은 웹브라우저에 보이지 x) ~:실제 웹 브라우저에 나타나는 내용 :웹브라우저의 끝을 나타냄 브라우저에게 정보를 주는 웹 문서 만들기 ..