자료구조와 알고리즘/이것이 취업을 위한 코딩테스트다 25

자료구조- 스택/큐 자료구조(DFS/BFS를 배우기 전에 선행되어야 하는 자료구조 개념)

https://youtu.be/7C9RgOcvkvo?list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC - 대기업에서는 DFS/BFS를 적절히 활용한 것을 문제로 많이 출제한다. - 다양한 알고리즘에서 Stack 자료구조의 동작 방법과 사용 방법에 대해서 알아두어야 한다. #스택 구현 예제 stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack[::-1])#최상단 원소부터 출력 print(stack) #최하단 원소부터 출력 - 파이썬에서 append() 함수와 pop()함수를 사용하면 손..

알고리즘 - 구현(Implementation)

https://youtu.be/2zjoKjt97vQ?t=1698 구현(Implementation)이란? 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 이때, 구현에 초점을 맞춘 문제는 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기는 어려운 문제를 지칭한다. 구현 문제의 예시 알고리즘은 간단하지만 코드가 지나칠 만큼 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제(문자열처리는 파이썬이 다른 언어에 비해서 굉장히 쉬움) 적절한 라이브러리를 찾아서 사용해야 하는 문제 (모든 순열, 모든 조합을 찾는 경우) 시뮬레이션과 완전 탐색이 구현의 대표적인 예시이다. 파이썬에서는 2차원 리스트 = 2차원 공간인 행렬로 쓰인다. 0..

알고리즘 - 그리디 알고리즘

https://youtu.be/2zjoKjt97vQ?list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC 그리디 - 탐욕적인 이라는 뜻을 가지고 있으며 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 해법 - 정당성 분석이 중요하다. (-> 단순히 가장 좋아보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토한다.) [문제 상황] 그리디 알고리즘은 최적의 해를 보장할 수 없다고 하는 이유는 노드마다 가장 큰 값을 선택할 때 5->10->4 이런식으로 가게 되어서 19가 그리디로 찾은 값이고 진짜로 가장 큰 값인 5->7->9의 값인 21보다 작기 때문에 최적의 해를 보장할 수 없을 때가 많다고 설명한다. 코딩테스트에서는 그리디를 사용해서 문제를 출제할 경..

자료구조와 알고리즘 - 재귀함수(Recursion)

재귀함수에 대해서 알아보자 재귀함수의 정의 컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다. 재귀함수의 장점 먼저, 알고리즘 자체가 재귀적인 표현이 자연스러운 경우에는 재귀 함수를 쓰는 것이 큰 도움이 됩니다. ... 두번째로, '변수 사용'을 줄여주어 mutable state가 취할 수 있는 경우의 수를 줄여주게 됩니다. 📌출처: https://velog.io/@tilsong/%EC%9E%AC%EA%B7%80-%ED%95%A8%EC%88%98%EB%8A%94-%EC%96%B8%EC%A0%9C..

자료구조와 알고리즘의 종류와 분류

자료구조(Data structure)의 종류, 분류 자료 구조의 종류 단순구조(Simple Structure) True/False, 정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형 정수 실수 문자 문자열 선형구조(Linear Structure) 데이터들이 일렬로 쭉 저장되어 있는 형태 순차 리스트 연결리스트 스택 큐 덱 비선형구조(Non-Linear Structure) 데이터가 트리 형태로 저장되어 있다고 생각하고 사용하는 자료구조 트리 (일반 트리, 이진 트리) 그래프 (방향 그래프, 무방향 그래프) 파일구조(File Structure) 다양한 자료구조의 데이터를 파일에 저장하는 방식 순차 파일 색인 파일 직접 파일 알고리즘(Algorithm)의 종류, 분류 기본 알고리즘 종류..