| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- DP
- udemy
- C언어
- 따라하면서 배우는 C언어
- JavaScript
- Python
- graph
- greedy
- Cleancode
- Algospot
- 따배씨
- Math
- Java
- 종만북
- 정수론
- web
- 따라하며 배우는 C언어
- C
- php
- 백준
- 인프런
- server
- dfs
- BFS
- BOJ
- Algorithm
- String
- BASIC
- 생활코딩
- sorting
- Today
- Total
목록Algorithm (156)
몽상실현개발주의
[알고리즘 기초] 05_Stack 2 / Python 1. 계산기 문자열로 된 계산식이 주어질 때, 스택이 이용하여 이 계산식의 값을 계산할 수 있다. 문자열 수식 계산의 일반적 방법 step1. 중위 표기법의 수식을 후위 표기법으로 변경한다. (스택 이용) step2. 후위 표기법의 수식을 스택을 이용하여 계산한다. 1.1 중위표기식의 후위표기식 변환 방법. 수식의 각 연산자에 대해서 우선순위에 따라 괄호를 사용하여 다시 표현한다. 각 연산자를 그에 대응하는 오른쪽괄호의 뒤로 이동시킨다. 괄호를 제거한다. 1. ( ( A * B ) - ( C / D )) 2. ( ( A B ) * ( C D ) / ) - 3. AB * CD / - 1.2 중위표기식의 후위표기식 변환 방..
[알고리즘 기초] 04_Stack 1 / Python 1. Stack(스택) 물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조 이다. 스택에 저장된 자료는 선형 구조를 갖는다. 선형구조 : 자료 간의 관계가 1대 1의 관계를 갖는다. 비선형구조 : 자료 간의 관계가 1대 N의 관계를 갖는다. (ex. 트리 구조) 트리구조: 트리구조는 가지치기형으로 생긴 구조이다. 부모자식 관계로 형성. 스택에 자료를 삽입하거나 스택에서 자료를 꺼낼 수 있다. 마지막에 삽입한 자료를 가장 먼저 꺼낸다. LIFO(후입선출) 이라고 부른다. ex) 1, 2, 3 순으로 삽입 -> 3, 2, 1 순으로 꺼낼 수 있음 2. 스택의 구현 - 스택을 프로그램에서 구현하기 위해 필요한 자료구조와 연산 자료구조: 자료를 선형으로 저..
[자료구조] 그래프 Graph 그래프 Graph 정점 (vertex / node) , 간선 (edge / link) 로 이루어진 자료구조 정점과 간선은 집합이기 때문에 중복된 값을 가지지 않는다. 그래프는 꼭 연결되어 있을 필요도 없고, 간선이 반드시 서로 다른 두 정점을 연결해야 할 필요도 없다. 비선형 자료구조이다. 즉, 선형 자료구조와 다르게 하나의 원소 다음에 여러개의 원소가 올 수 있다. (1:M , 0 외부에서 오는 간선 수 진출 차수(out-degree) : 해당 정점을 시작으로 하는 간선의 수 (=외차수) => 외부로 나가는 간선 수 루프(loop) : 간선 하나에 동일 노드가 연결(부속)되어 있는 경우 경로(path) : 간선을 따라 갈 수 있는 길. 정점의 나열로 표시 ex) , , ...
[BOJ] 2146 / 다리 만들기 / Python 파이썬 https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 풀이 주어진 이중배열에서 1로 이루어진 무리 사이의 최단 거리를 구하는 문제이다. 문제를 이해하였지만, 구현하는데에 많은 어려움이 있었다. BFS 를 이용하여 최단거리를 구하는 것과 문제를 풀기위한 환경 구성을 함께 고려해 주어야 한다. from collections import deque def setIsland(y, x, setN): glo..
[BOJ] 2178 / 미로 탐색 / Python 파이썬 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 풀이 경로탐색의 기본 문제이다. bfs 로 경로상의 이동 거리를 저장하며 경로를 진행하도록 하였다. from collections import deque N, M = map(int, input().split()) maps = [] for _ in range(N): maps.append(list(map(int, list(input())))) dq = deque() dq.ap..
[BOJ] 7576 / 토마토 / Python 파이썬 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이 이차원 배열에서 주어진 시작점으로 부터 주어진 규칙을 시행하는 문제였다. 처음에는 각각의 시작점에서 시행하는 경우가 동시에 발생 하는 것을 고려하지 못하고, 독립적으로 시행하게 구현하였더니 시간초과가 발생하였다. BFS 로 각각의 시작점을 같은 단계에서 동시에 수행되도록 구현하였더니 통과하였다. from collection..
[BOJ] 4963 / 섬의 개수 / Python 파이썬 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 주어진 이차원 배열에서 상하좌우 그리고 대각선으로 이어진 그룹의 개수를 구하는 문제이다. 인접한 섬을 찾는 방법은 이차원 배열에서의 기본 탐색 방법을 사용하였고 (dy, dx) Queue 를 사용한 BFS 로 경로를 저장하여 탐색하였다. import sys from collections import deque input = sys..
[알고리즘 기초] 03_문자열(string) / Python 1. 문자의 표현 - 컴퓨터에서의 문자의 표현 1) 코드체계 각 문자에 대해서 대응되는 숫자를 정해 놓고 이것을 메모리에 저장하는 방법을 사용 영어의 경우 대소문자 합쳐서 52자 이므로 6비트(64 가지)면 모두 표현 할 수 있다. 이를 코드체계라고 한다. 000000 -> 'a' 000001 -> 'b' 네트워크가 발전하면서 서로간의 정보를 주고 받을 때 정보를 다르게 해석한다는 문제가 발생 지역별 코드 체계가 다르기 때문 2) ASCII Code 표준안을 목적으로 1967년, 미국에서 ASCII(American Standard Code for Information Interchange)라는 문자 인코딩 표준이 제정됨. ASCII는 7bit ..