본문 바로가기

분류 전체보기176

자료구조 - 순차적 자료구조 : 스택(Stack)(2022.09.22~10.12) 1. 스택(Stack) LIFO방식(Last In First Out) : 뷔페에서 볼 수 있는 쌓아둔 그릇을 생각하면 이해가 쉽다. 가장 나중에 들어온 데이터가 가장 먼저 나가는 방식이다. 즉 스택의 모든 연산은 스택의 최상단에서 이루어진다. 스택의 연산들에 대해 알아보자. (파이썬) - 삽입연산 : push를 이용해 스택에 값을 삽입한다.(리스트에서는 append를 사용) - 삭제연산 : pop을 이용하며 가장 나중에 들어온 데이터가 삭제된다. pop을 사용할 때는 스택이 비워져 있을 때, 즉 pop할 아이템이 없을 상황을 대비해야 한다. (pop할 아이템이 없으면 indexError가 발생한다.) 이 때는 try & except 를 이용한다. class stack def __init__(self): .. 2022. 10. 12.
백준 문제풀이 - 1000번, 1001번, 1008번, 10998번, 10869번 사칙연산(파이썬, 2022.10.01 기록) 1. 1000번, 1001번, 1008번 1) 1000번 A+B 2) 1001번 A-B 3) 10998번 A*B 4) 1000/1001번/10998번 풀이 2. 10869번 사칙연산 1) 10869번 사칙연산 2) 10869번 풀이 한동안 파이썬 문법에 대해 공부하느라 포스팅을 하지 못했다. 자료구조 강의 중 스택에 대한 복습을 하던 도중, 실제로 강의에서 들은 코드를 구현해봤으나 오류가 발생하는 것을 확인했고, 기본이 아직 턱없이 부족함을 느꼈다. 파이썬 문법 공부를 해서 자료구조에 대한 이해가 더 필요하다고 판단했다. 이제 다시 백준 풀이나 자료구조 정리 글을 다시 꾸준히 올려야겠다 ,, ! 2022. 10. 10.
백준 문제풀이 - Hello World, We love kriii (python)(2022.09.30) 1. Hello World! 출력하기 Print('Hello World!') 2. We love kriii : 아래 내용 출력되도록 하기 강한친구 대한육군 강한친구 대한육군 print('강한친구 대한육군\n'*2) # 문법 살펴보기 1) Print() : () 안의 내용을 출력하는 함수 2) 문자열 내에 \n(줄바꿈)과 같은 기호를 입력하여도 인식이 된다. 3) 문자열에 *n을 하면 n번 출력된다. 이 외에도 '+' 연산자를 활용하면 문자열을 연결해서 출력할 수 있고 ','(콤마)를 활용하여 여러 값을 연속해서 출력할 수 있다. 이 때, 콤마를 사용하면 중간에 공백이 들어간다. 4) 문자열은 ' ' 또는 " " 내에 입력하여 표현할 수 있으며 ''' ''' 내에 입력하면 줄바꿈까지 처리할 수 있다. 2022. 10. 1.
자료구조-순차적 자료구조 : 배열, 리스트(2022.09.21) 1. 배열 1) 가장 기본적인 순차적 자료구조. 2) 인덱스(index) : 배열의 각 특정 위치에 있는 값을 나타내는 상수로 맨 처음 값의 index는 '0'으로 시작하여 1씩 증가. 3) 특징 - 고정된 크기를 갖는 같은 자료형의 원소들이 연속적인 형태로 구성된 자료구조 - 메모리 낭비. 인덱스에 따라 값을 유지해서 중간의 데이터가 삭제되어도 빈자리가 남게 된다. - 배열의 크기가 유동적이지 못하다. 처음 지정한 크기보다 적은 데이터가 들어있어도 배열의 크기에는 변동이 없으며, 반대로 처음에 지정한 크기보다 많은 데이터를 넣거나 삽입하려고 할 경우 에러가 발생한다. => 따라서, 접근을 자주 해야하고 개수가 고정적인 데이터의 경우 배열을 사용하는 것이 적합하다. 4) 연산 - 읽기 & 쓰기 배열에서 .. 2022. 9. 24.
자료구조 - 시간복잡도 , Big-O(2022.09.18) 1. 시간복잡도 알고리즘의 수행시간은 최악의 입력에 대한 기본 연산 횟수로 정의한다. 사실 모든 입력에 대해 기본연산 횟수를 더한 후 평균을 낸 값이 정확한 값이지만 이는 현실적으로 불가능하므로 가장 안 좋은 입력에 대한 기본 연산 횟수를 측정하여 정의한다. 시간복잡도에 대한 예제로 아래 상황을 생각해보자. 1) 최댓값 구하기 algorithm arrayMax(A,n) currentMax = A[0] for i = 1 to n-1 do if CurrentMax < A[i] currentMax = A[i] return currentMax arrayMax의 W.C.I (Worst Case Input)은 어떤 걸까? 가장 최악의 상황은 for구문의 모든 값에 대해 if 구문이 참이어서 currnetMax의 값.. 2022. 9. 19.
네트워크 - 4계층 프로토콜, 포트번호, TCP, UDP, TCP Flag (2022.09.15~16) 1. 4계층 프로토콜 - TCP, UDP 4계층은 전송 계층으로 송신자의 Process와 수신자의 Process를 연결하는 통신 서비스를 제공한다. 전송 계층은 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 다중화와 같은 서비스를 제공한다. 이때 TCP 프로토콜과 UDP 프로토콜이 있는데 이 둘의 차이점은 아래와 같다. (자세한 내용은 아래 쪽에서 더 자세히 살펴볼 것이다.) - TCP 프로토콜 : 친절, 연결된 후 데이터 전송, 받았는지 확인 후 다음 data 전송, 과정 복잡 - UDP 프로토콜 : 안전한 연결 지향하지 않음, Myway 간단 이 둘의 차이점은 이렇듯 극명하게 나뉘는데 TCP프로토콜이 친절하게 하나 하나 짚어주고 가르쳐준다면 UDP프로토콜은 최소한의 연결만 제공하고 대신 효율을.. 2022. 9. 19.