var 변수를 의미하는 variable를 줄인 것으로, 최초 선언 후 재선언과 재할당 모두 가능하다. var x = "JS"; var x = "React"; console.log(x); // React var y = "React"; y = "JS"; console.log(y); // JS const const는 상수란 뜻으로, 최초 선언 후 재선언 및 재할당이 불가능한 변수이다. const x = "JS"; x = "React"; console.log(x); // TypeError: Assignment to constant variable. 또한, 최초 선언 시 값을 입력해주지 않으면 에러가 난다. const x; x = "JS" console.log(x); // SyntaxError: Missing i..
분류 전체보기
문제 (링크) https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 나의 풀이 n = int(input()) ans = 0 cities = list(map(int, input().split())) prices = list(map(int, input().split())) min_price = 1000000000 min_price_index = -1 for i in range(n-1): if prices[i] < min_price: min..
링크드 리스트 정리 https://seongonion.tistory.com/20?category=867075 링크드 리스트의 구현 및 연산 - 파이썬(Python) 링크드 리스트의 구현 (Node, __init__, __str__) 링크드 리스트를 구현하기 위해선, 각각의 데이터와 다음 데이터에 대한 주소(레퍼런스)를 저장할 '노드' 객체가 필요하다. class Node: def __init__(self, data. seongonion.tistory.com 우선, 단방향 링크드 리스트를 클래스를 통해 간단히 구현해보자. class Node: def __init__(self, data): self.data = data self.next = None 각 노드들은 data와 next를 속성으로 가질 수 있다...
프로세스와 스레드의 차이 프로그램(Program) 특정 작업을 위해서 실행할 수 있는 파일 (코드의 묶음) 보조기억장치에 저장되어 있음 (디스크 등) 정적인 형태 →디스크에 저장되어 있는 binary파일을 프로그램이라고 보면 된다. 프로세스(Process) 운영체제로부터 메모리를 할당 받아 실행 중인 프로그램 실행되면 주기억장치에 데이터가 적재됨 (RAM) 동적인 형태 → 프로그램이 RAM에 적재되어 실행중인 상태인 것을 프로세스라고 할 수 있다. 프로세스의 구성 요소 (Process Control Block) 1) PID (Process ID) 프로세스를 식별할 수 있는 고유번호 2) Process State 해당 프로세스가 현재 어떠한 상태인지를 나타내는 정보로, Ready, Waiting/Block..
HTTPS HTTPS란? HTTP 프로토콜의 보안버전 - S(Secure) HTTP의 약점 암호화가 되지 않은 평문 통신으로, 도청이 가능하다. 통신하려는 상대를 확인하지 않는다 HTTP의 약점을 보완하기 위해선 암호화가 필요하다 🔑 암호화 알고리즘 1. 대칭키 암호화와 복호화에 동일한 키를 사용하는 것 대칭키의 장점 송신자와 수신자가 동일한 키를 가지고 있기 때문에, 암호화 - 복호화 과정이 단순하며 속도가 빠르다. 대칭키의 단점 어쨌든 송신자와 수신자 간 키 교환이 이루어져야한다. 키 교환 과정에서 키가 노출되면 암호가 무력해진다. 수신자와 송신자가 늘어날수록 그만큼 관리해야할 키가 하나 씩 증가해 관리가 어려울 수 있다. 2. 비대칭키(공개키) 암호화와 복호화에 다른 키를 사용하는 것 비대칭키의 장..
HTTP HTTP란? HyperText Transfer Protocol의 약자로, HyperText 문서(HTML)의 리소스들을 가져오거나 보낼 때 사용하는 통신규약 TCP / IP 위에서 이루어짐 HTTP는 요청 & 응답 구조로 이루어져있다 Client가 Request & Server가 Response HTTP의 특성 ✅ Stateless하다! 각각의 요청(Request)와 응답(Response)는 독립적인 행위이다. Ex) 클라이언트가 요청을 보낸 후 응답을 받고, 얼마 후에 또 다른 요청을 보낼 때 클라이언트와 서버는 둘 다 이전에 보냈던 요청 / 응답에 대해 기억하지 못한다. Stateless하기 때문에 다수의 Request가 서버로 들어와도 부하를 줄일 수 있다. (연결 정보를 저장할 필요가 없..
TCP란 연결 지향형 프로토콜로, 연속성 있는 데이터 패킷을 주고 받을 때 사용한다. TCP 특징 전송되는 데이터의 신뢰성 보장 (흐름 제어, 혼잡 제어, 오류 제어) 파일전송에 주로 사용 가상 회선을 만들어 신뢰성을 보장 TCP 3 way handshake 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다. TCP 3 way handshake를 간단히 표현하면 다음과 같다. A -> B : 내 말 들려? B -> A : 잘 들려. 내 말은 들려? A -> B : 잘 들려! SYN (synchronize sequence numbers) - 연결 확인을 위해 보내는 무작위의 숫자값 (내 말 잘 ..
문제 (링크) https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 나의 풀이 n = int(input()) dp = [[0, 0] for _ in range(41)] dp[0][0] = 1 dp[0][1] = 0 dp[1][0] = 0 dp[1][1] = 1 for i in range(2, 41): dp[i][0] = dp[i-1][0] + dp[i-2][0] dp[i][1] = dp[i-1][1] + dp[i-2][1] n_list = [] for _ in range(n): n_list.append(int(input())) for n in n..