일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 제주코딩베이스캠프
- 리눅스셸명령어
- 백준
- 리눅스
- 백준2587
- 코테준비
- 코테
- 컴퓨터네트워크
- 백준1312
- 파이썬
- 네트워크면접
- 더오름
- javascript
- Linux
- 리눅스퍼미션
- 네트워크정리
- 개발자
- 링크명령어
- 네트워크기초
- 자료구조
- 코딩테스트
- 위니브
- 디렉토리관리
- 네트워크
- 제주ICT
- Python
- 터미널명령어
- 네트워크핵심정리
- 파일명령어
- 리눅스기초
- Today
- Total
목록Python (18)
hyei-devlog

트리(Tree)는 계층적인 구조를 가지는 비선형 자료구조다. 루트 노드(Root Node)에서 시작해 여러 개의 하위 노드(Child Node)로 확장되는 형태를 가진다. 트리는 데이터 탐색, 계층적 관계 표현 등에 많이 사용되며, 이진 트리(Binary Tree) 형태로 구현되는 경우가 많다. 트리의 기본 개념트리는 여러 개의 노드(Node)로 구성되며, 각 노드는 부모-자식 관계를 가진다. 그래프의 일종이지만, 순환(Cycle)이 없는 구조라는 점이 다르다. 트리의 주요 용어노드(Node): 트리의 기본 구성 요소로 데이터를 저장하는 단위루트 노드(Root Node): 트리의 최상단에 위치한 노드부모 노드(Parent Node): 어떤 노드를 포함하는 상위 노드자식 노드(Child Node): 특정..

큐(queue)는 컴퓨터의 기본적인 자료구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 구조(FIFO, First In First Out)를 가진다. 쉽게 말해, 줄을 서서 기다리는 것과 같은 개념이다. 데이터를 넣는 작업을 put, 데이터를 꺼내는 작업을 get이라고 한다.파이썬에서는 insert(0, 값)과 pop(0)을 사용하여 큐를 구현할 수 있고, 자바스크립트에서는 unshift()와 shift()를 활용할 수 있다. 큐의 동작 원리새로운 데이터는 항상 rear(뒤쪽 끝)에서 추가된다.데이터를 꺼낼 때는 front(앞쪽 끝)에서 제거된다.가장 먼저 들어온 데이터가 가장 먼저 제거된다.큐가 가득 차면 Overflow, 비어 있으면 Underflow 상태가 된다. 큐의 용어put: 큐에 데이터..

스택(stack)은 데이터가 한쪽 끝에서만 들어오고 나가는 자료구조다. 쉽게 말해, 마지막에 넣은 데이터가 가장 먼저 나오는 구조로 동작한다. 이를 LIFO(Last In, First Out) 구조라고도 한다. 예를 들어, 책을 쌓아 올릴 때 가장 위에 놓인 책을 먼저 꺼내는 것과 같은 방식이다. 데이터를 넣는 것을 push(푸쉬), 데이터를 꺼내는 것을 pop(팝)이라고 한다. 스택의 동작 원리데이터를 스택에 넣으면(top이 가리키는 위치에 추가) push 연산이 수행된다.데이터를 스택에서 꺼내면(top이 가리키는 데이터를 제거) pop 연산이 수행된다.가장 마지막에 추가된 데이터가 가장 먼저 제거된다.스택이 비었는지 확인할 수도 있다. 스택의 연산스택에서 기본적으로 제공하는 연산은 다음과 같다.pu..

📍 문제https://www.acmicpc.net/problem/1312 📍 전체 코드A, B, N = map(int, input().split())num = A * (10 ** N) // Bdigit = num % 10print(digit) 📍 문제 풀이num = A * (10 ** N) // B 분자 A에 10의 N제곱을 곱하여, 소수점 아래 N자리까지 미리 확장한다.예를 들어, N=3이라면 A를 1000배 확장하는 것이다. 그 후, B로 나누는 연산을 정수 나누기(//)로 수행한다. 이렇게하면 소수점 이하 자리에서 원하는 값만 남게 된다. digit = num % 10 num을 10으로 나눈 나머지를 구하는 연산을 통해 소수점 N번째 자리의 숫자를 추출할 수 있다. 📍 문제 해결 위한 고민..

📍 문제 📍 전체 코드import sysinput = sys.stdin.readlineN = int(input())num_list = list(int(input()) for _ in range(N))num_list.sort()for num in num_list: print(num) 📍 문제 해결 위한 고민 sort()는 원본 리스트를 정렬하고, 그 자체로는 리스트를 반환하지 않고 None을 반환한다.print(num_list.sort())는 정렬된 리스트가 아니라 None을 출력한다.num_list.sort() # 리스트를 정렬print(num_list) # 정렬된 리스트 출력 sys.stdin.readline()을 사용하여 시간 초과 문제를 해결했다.import sysinput = sys..

📍 문제https://www.acmicpc.net/problem/10814 📍 전체 코드N = int(input())arr = []for i in range(N): age, name = input().split() age = int(age) arr.append([age, name])arr.sort(key=lambda x: x[0])for i in range(N): print(arr[i][0], arr[i][1]) 📍 문제 풀이for i in range(N): age, name = input().split() age = int(age) arr.append([age, name]) N번 반복하면서 나이와 이름을 입력받아 리스트에 저장한다.split()을 사용해 입력을..

📍 문제https://www.acmicpc.net/problem/2587 📍 전체 코드num_list = list(int(input()) for _ in range(5))print(int(sum(num_list) / 5)) # 평균print(sorted(num_list)[2]) # 중앙값 📍 문제 풀이num_list = list(int(input()) for _ in range(5))5개의 정수를 입력받아 리스트 num_list에 저장한다.int(input())을 5번 반복하여 각 숫자를 정수로 변환한 후, 리스트로 만든다. print(int(sum(num_list) / 5)) # 평균리스트 num_list의 합을 sum(num_list)으로 구하고, 5로 나눈 후 정수형(int())으로 변환하여 ..

📍 문제https://www.acmicpc.net/problem/2525 📍 전체 코드h, m = map(int, input().split())cook_m = int(input())h += cook_m // 60m += cook_m % 60if m >= 60: h += 1 m -= 60if h >= 24: h -= 24print(h, m) 📍 문제 풀이주어진 시간 (h, m)에 추가로 주어진 분(cook_m)을 더한 후, 24시간제에 맞게 조정하는 문제이다. 1. 시간과 분을 더하기cook_m // 60 # → 추가할 시간 계산cook_m % 60 # → 추가할 분 계산 2. 분(m)이 60 이상이면 시(h) 증가시키기 if m >= 60: # m >= 60이면 h +1, m - 6..

📍 문제https://www.acmicpc.net/problem/25305 📍 전체 코드N, k = map(int, input().split())num_list = list(map(int, input().split()))num_list.sort(reverse=True)print(num_list[k-1]) 📍 문제 풀이num_list = list(map(int, input().split())) 한 줄로 입력받아 정수 리스트로 변환한다.num_list.sort(reverse=True) 정수 리스트를 내림차순으로 정렬한다. (기본값: 오름차순)print(num_list[k-1]) 문제에서 요구하는 위치의 점수를 출력한다. 📍 문제 해결을 위한 고민리스트를 정렬하는 방법에는 'sorted()'와 'sor..

Python의 collections 모듈은 다양한 형태의 컨테이너를 제공하여 데이터 조작을 쉽고 효율적으로 할 수 있다. 1. deque deque는 양쪽 끝에서 요소를 추가하거나 제거할 수 있는 스레드-안전한 양방향 큐이다.from collections import dequed = deque()d.append('a') # 오른쪽 끝에 추가d.appendleft('b') # 왼쪽 끝에 추가d.pop() # 오른쪽 끝 요소 제거d.popleft() # 왼쪽 끝 요소 제거d = deque()d = ['a', 'b', 'c']d.rotate(1) # ['c', 'a', 'b'] 한번 더 쓰면 b가 앞에온다. 알고리즘에서 자주 사용된다. 2. Counter Counter는 요소의 개수를 세는데 사용되는..