일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준1312
- 파이썬
- 백준1181
- collections
- 코테
- 제주코딩베이스캠프
- 백준10757
- 백준2587
- 개발자
- 백준10039
- 위니브
- 제주ICT
- F-string
- Python
- 더오름
- 백준2525
- 자료구조
- 큐
- 백준2751
- 컴프리헨션
- 이터레이터
- 백준1247
- 백준1284
- 왈러스 연산자
- 코딩테스트
- 백준 10814
- 코테준비
- javascript
- 백준25305
- 백준
- Today
- Total
목록분류 전체보기 (19)
hyei-devlog

🏝 암호를 해독하라! 알고리즘 제왕의 비밀알고리즘 제왕 파이와 썬은 모든 알고리즘을 해독할 수 있는 7개의 원석을 가진 인물이었다. 그는 죽기 전, 이 보물을 ‘암호’로 보호하고 세계 어딘가에 숨겼다. 그리고 남긴 단서는 단 하나였다. 📌 "섬으로 향하라!"그가 남긴 메시지는 다음과 같다.' + -- + - + - '' + --- + - + '' + -- + - + - '' + - + - + - + ' 🔍 암호 해독 과정+는 1, -는 0으로 변환한다.변환된 이진수를 십진수(ASCII 코드)로 변환한다.변환된 숫자를 문자로 변환하여 해독한다.📌 Python 코드로 구현하면 다음과 같다.text = [' + -- + - + - ', ' + ---..

트리(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..