일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- db
- Markdown
- 그리디
- Algorithm
- 알고리즘
- 수열
- httpCode
- 코딩테스트
- mongoDB
- 데이터
- 몽고DB
- 인프콘2024
- 코테
- 소수
- chatGPT
- 백준
- 마크다운문법
- 마크다운
- database
- 코딩문제
- 알고리즘기초
- 기초
- Python
- 수학
- 그래프
- 탐색알고리즘
- 파이썬
- 데이터베이스
- NoSQL
- 그리디알고리즘
- Today
- Total
목록알고리즘기초 (30)
Dev_from the Bottom
DFS : Depth-First-Search 깊이 우선 탐색 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 특정한 경로로 탐색하다가 특정한 상황에서 최대한 깊숙이 들어가서 노드를 방문한 후, 다시 돌아가 다른 경로로 탐색하는 알고리즘 동작 과정 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다. 2) 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면, 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3) 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다. * 방문 처리 : 스택에 한 번 삽입되어 처리된 노드가 다시 삽입되지 않게 체크하는 것을 의미. 방문 처리를 함으로써 각 노드를 한 번씩만 처리 가능 ** DFS의..
문제) 단어의 개수 - 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력) - 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력) - 첫째 줄에 단어의 개수를 출력한다. 문제 링크) https://www.acmicpc.net/problem/1152 Step1) 테스트1 str = 'The Curious Case of Benjamin Button' list = str..
DFS, BFS를 이해하기 위해서는 기본 자료구조인 스택과 큐를 이해해야 하고, 재귀 함수를 알아야 한다. 1. Stack Stack는 박스 쌓기에 비유할 수 있음 선입후출(First In Last Out) or 후입선출(Last In First Out) 파이썬에서 스택을 이용할 때에는 별도의 라이브러리를 사용할 필요가 없음 기본 리스트에서 append()와 pop() 메서드를 이용하면 스택 자료구조와 동일하게 동작 append()메서드는 리스트의 가장 뒤쪽에 데이터를 삽입하고, pop() 메서드는 리스트의 가장 뒤쪽에서 데이터를 꺼냄 stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.ap..
문제) 크로아티아 알파벳 - 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. - 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. - 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력) - 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력) - 첫째 줄에 그룹 단어의 개수를 출력한다. 문제 링크) https..