목록알고리즘 (16)
책 읽다가 코딩하다 죽을래
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pSF9A/btrceaDo4ri/lq6UOcCvoNSEAAe0ATKbYK/img.png)
1. 시간복잡도 더보기 시간 복잡도는 입력값에 따라 문제를 해결하는데 걸리는 시간과의 상관관계를 말합니다. 똑같은 알고리즘에 입력값이 몇 배로 늘어남에 따라 문제를 해결하는 데 걸리는 시간은 몇 배만큼 늘어나는지 보는 것이다. 우리는 똑같은 입력값이라도 당연히 더 빠른 시간 안에 입력을 처리하는 알고리즘을 선호한다. 즉 걸리는 시간이 줄어들수록 시간 복잡도는 작아지며, 시간 복잡도가 작은 알고리즘이 좋은 알고리즘이다. 시간 복잡도에 대해서 설명하기 위해 똑같은 목적을 가진 두 개의 알고리즘을 살펴보겠다. 두 개의 알고리즘의 목표는 배열 안에 숫자 중 가장 큰 최댓값을 찾는 로직이다. array = [1,3,6,5,4,2] def findMaxValue(array): max_num = array[0] fo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/QO8NH/btrbVn4uYnz/LWIGOnyRKxHeZGzkta0GS1/img.jpg)
GD프로젝트 알고리즘 수업 4주 차가 시작되었다. 그럼 4주 차에 배운 내용과 풀었던 알고리즘 문제에 대해 설명하겠다. 목차 1. 새롭게 배운 내용(트리, 힙, 그래프, DFS, BFS, Dynamic Programming) 2. CGV 극장 좌석 자리 구하기 문제 1. 새롭게 배운 내용 1 - 0 선형, 비선형 더보기 선형 자료구조의 대표적인 예시인 스택과 큐이다. 선형구조는 처음과 끝이 확연히 정해져 있다. 그래서 자료를 저장하고 꺼내고 탐색하는 것에 초점이 맞추어져 있다. 즉 내가 사용해야할 자료구조가 조회, 삽입, 삭제가 얼마나 빈번하냐에 따라 선택해야 한다. 비선형 자료구조의 대표적인 예시인 트리와 그래프이다. 비선형 구조는 처음과 끝이 정해져 있지 않으며 때로는 순환적이기도 하다. 비선형 자료..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zlBxu/btrbEOap87K/u3lf8TQIKwjX6etjLusSeK/img.jpg)
GD프로젝트 알고리즘 수업 3주 차가 시작되었다. 그럼 3주 차에 배운 내용과 풀었던 알고리즘 문제에 대해 설명하겠다. 목차 1. 새롭게 배운 내용(버블정렬, 선택정렬, 삽입정렬, 병합정렬, 스택, 큐, 해쉬) 2. 스택 문제 1. 새롭게 배운 내용 1. 정렬 더보기 정렬이란 데이터를 순서대로 나열하는 방법을 말한다. 정렬은 알고리즘의 굉장히 중요한 주제이다. 이진 탐색을 가능하게 해주고 데이터를 조금 더 효율적으로 탐색할 수 있게 만들기 때문이다. 그럼 한 번 여러분들이 다음의 데이터를 정렬해보자 3,1,2 파슬리, 누룽지, 감자 d, s, o 인간의 눈으로는 작은 수들의 데이터를 정렬하는 것은 무지 쉽다. 3,1,2 -> 1,2,3 파슬리, 누룽지, 감자 -> 감자, 누룽지, 파슬리 d, s, o -..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ccgKQU/btrbmx89IoE/xqVsBvlWgkFLGkdFTvLH41/img.jpg)
GD프로젝트 알고리즘 수업 2주 차가 시작되었다. 그럼 2주 차에 배운 내용과 풀었던 알고리즘 문제에 대해 설명하겠다. 목차 1. 새롭게 배운 내용(Array, LinkedList, 이진 탐색, 재귀 함수) 2. 재귀 함수 문제 1. 새롭게 배운 내용 1. Array vs LinkedList 더보기 자료구조 중에서 자주 쓰이는 Array와 LInkedList를 서로 비교하겠다. 언어는 Python 기준으로 하겠다. (선언할 때 배열 크기를 정해야 하는 c++, 자바의 정적 배열과는 달리 Python의 배열은 동적 배열이다.) 다음 간단한 배열의 예를 들어보자 배열은 index와 데이터로 이루어져있다. index는 0으로부터 시작되며 데이터의 순서를 매기며 데이터는 int형부터 시작되어 그 어떤 데이터 타..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/clVQmO/btrb7Acisvz/Wm659z85e6fKDI2yOKICGk/img.jpg)
GD프로젝트 리액트 수업이 끝나고 알고보면 알기쉬운 알고리즘 이라는 알고리즘 수업이 이번 주차부터 시작되었다. 그럼 1주차에 배운 내용과 소수 찾기 알고리즘에 대해 설명하겠다. 1. 새롭게 배운 내용 1. 시간복잡도 더보기 시간 복잡도는 입력값에 따라 문제를 해결하는데 걸리는 시간과의 상관관계를 말합니다. 똑같은 알고리즘에 입력값이 몇 배로 늘어남에 따라 문제를 해결하는 데 걸리는 시간은 몇 배만큼 늘어나는지 보는 것이다. 우리는 똑같은 입력값이라도 당연히 더 빠른 시간 안에 입력을 처리하는 알고리즘을 선호한다. 즉 걸리는 시간이 줄어들수록 시간 복잡도는 작아지며, 시간 복잡도가 작은 알고리즘이 좋은 알고리즘이다. 시간 복잡도에 대해서 설명하기 위해 똑같은 목적을 가진 두 개의 알고리즘을 살펴보겠다. 두..
https://www.acmicpc.net/problem/11502 11502번: 세 개의 소수 문제 문제 정수론(수학)에서, 세 개의 소수 문제(3-primes problem) 는 다음과 같은 추측을 말한다. '5보다 큰 임의의 홀수는 정확히 세 개의 소수들의 합으로 나타낼 수 있다. 물론 하나의 소수를 여러 번 더할 수도 있다.' 예를 들면, 7 = 2 + 2 + 3 11 = 2 + 2 + 7 25 = 7 + 7 + 11 5보다 큰 임의의 홀수를 입력받아서, 그 홀수가 어떻게 세 소수의 합으로 표현될 수 있는지 (또는 불가능한지) 알아보는 프로그램을 www.acmicpc.net 소수찾기의 알고리즘은 기본적으로 에라토스테네스의 체를 많이 이용한다 에라토스테네스의 체를 처음 들어보셨으면 아래의 글에 들어..
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 기본적인 소수찾기 문제이다 소수찾기의 알고리즘은 기본적으로 에라토스테네스의 체를 많이 이용한다 에라토스테네스의 체를 처음 들어보셨으면 아래의 글에 들어가 ppt를 읽고오면 도움이 될 것이다. 2020/02/28 - [알고리즘] - [소수 찾기]에라토스테네스의 체 [소수 찾기]에라토스테네스의 체 소수를 찾는 알고리즘 중 가장 많이 사용되고 있는 것은 에라토스테네스의 체입니다. 제가 직접 만든 ppt파일입니다. 2차 배포는 금지하며 개인 소장이나 교육 목적을 위한 용도..