Coding Test Practice/알고리즘 개념 5

스택(Stack)과 큐(Queue), python

이미지 출처 : https://medium.com/omarelgabrys-blog/stacks-and-queues-d96c6f35fae3 스택(Stack) - 먼저 들어 온 데이터가 나중에 나가는 형식(선입후출)의 자료구조이다. - 입구와 출구가 동일한 형태이다. 스택 구현 파이썬에서의 스택 구현은 리스트를 활용하여 구현할 수 있다. stack = [] # 삽입(5) > 삽입(2) > 삽입(3) > 삽입(7) > 삭제() > 삽입(1) > 삽입(4) > 삭제() 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]..

딕셔너리 value 추가 하기, 프로그래머스 위장

프로그래머스 문제 level 2 위장을 풀다가 기존에 생성해 놓은 딕셔너리 value에 값을 추가해보았다. 일반적으로 우리가 생각하는 딕셔너리 값을 추가하는 방법은 key와 쌍으로 추가하는 방법인데 다음과 같다. dic = {} dic[key] = [value] print(dic) >> {"key" : [value]} 하지만 나는 기존에 존재하는 key에 해당하는 value 값을 추가하고 싶었는데, dic = {"key" : [value1, value2]} 이렇게 만들고 싶었는데, 구글링을 해서 마침내 방법을 알게 되었다.(일반적인 방법밖에안나와서 고생함..) 방법은 다음과 같다! # 다음과 같은 딕셔너리가 존재할 때 clothes = {'headgear' : ['yellow_hat']} # headge..

DFS/BFS 연습문제, python

문제 설명 N x M 크기의 얼음 틀이 있습니다. 구멍이 뚫려있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시됩니다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주합니다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하세요. 다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성됩니다. 입력조건 - 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로길이 M이 주어집니다.(1

DP(Dynamic Programming), 동적계획법

다이나믹 프로그래밍이란? - 다이나믹 프로그래밍은 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이다. - 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. - 다이나믹 프로그래밍의 구현은 일반적으로 두 가지 방식(하향식(Top Down), 상향식(Bottom up))으로 구성된다. * 일반적인 프로그래밍 분야에서의 동적(Dynamic)이란? - 자료구조에서 동적 할당(Dynamic Allocation)은 '프로그램이 실행되는 도중에 실행에 필요한 메모리를 할당하는 기법' 을 의미한다. - 반면, 다이나믹 프로그래밍에서 '다이나믹'은 별다른 의미 없이 사용된 단어이다. 다이나믹 프로그래밍의 조건 1. 최적 부분 구조(Optimal Subst..

DFS(Depth-First Search) 깊이 우선 탐색

프로그래머스 Level2 문제인 N-Queen 를 풀려다가.. 백트래킹이 뭔지.. DFS가 무엇인지를 모르니 다른 사람들이 풀어 놓은 해설을 보더라도 전혀 이해가 가지 않았다.. 그래서 작성하게 된.. DFS..그럼 시작.. (DFS 정리는 나동빈님의 알고리즘 강의를 참고하여 작성되었습니다!) (나동빈님의 유튜브 채널 :https://www.youtube.com/c/dongbinna) DFS(Depth-Fist Search) 깊이 우선 탐색 - DFS는 깊이 우선 탐색이라고도 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. - DFS는 스택 자료구조(또는 재귀 함수)를 이용하며, 구체적으로 다음과 같이 작동한다 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다 스택의 최상단 노드에 방문..