적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Algorithm/자료구조 알고리즘 13

[알고리즘] 해시 Hash

Hash Key : Value 의 형태를 갖는 하나의 자료구조 ex) 해시 = 전화번호부. 이름 : key, 번호 : value 해시의 특징 : 모든 데이터 타입으로 접근이 가능하다. 해시 문제들 백준 10816 숫자 카드 2 프로그래머스 - 완주하지 못한 선수 신고 결과 받기 위장 예) 프로그래머스 - 완주하지 못한 선수 n명이 마라톤 참가. n-1명만 완주. 완주하지 못한 1명을 찾는 문제 Hash를 사용하면 아주 간단하게 해결 가능 HashMap 생성. HashMap.put("A", true); HashMap["A"] = true; 와 똑같은 동작 bool fin = hashmap.get("A"); bool fin = hashmap["A"]; 와 같은 동작 getOrDefault 함수 getOrDe..

[알고리즘] 재귀 Recursion

재귀(Recursion)란? : 컴퓨터 과학에서 재귀란 자신을 정의할 때 자기 자신을 재참조하는 방법을 의미한다. 재귀 함수(Recursion Function)란? 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식 특정 분기까지 자기 자신을 계속해서 호출하는데, 주로 반복문을 구현할 때 사용한다. for, while 등의 반복문으로 구현가능한 로직은 모두 재귀함수로도 가능하고 그 반대 역시 가능하다. 재귀함수의 가장 대표적인 사용 예제는 팩토리얼(Factorial) 재귀함수 공식 func 함수이름(매개변수) { if 종료조건 { return 종료값 } return 점화식 //결과값을 받을 변수 = 함수이름(입력변수) } 재귀함수 사용시 주의할 점 스택 오버플로우(stack overflow)를 주의해..

[알고리즘] 깊이/너비 우선 탐색 DFS/BFS

그래프 탐색 알고리즘 DFS / BFS 그래프 : 여러 개체들(node)이 간선(edge)로 연결되어 있는 자료구조 탐색 : 특정 개체를 찾기 위한 알고리즘. 그래프 탐색 : 하나의 노드로 부터 시작해 차례대로 모든 정점들을 한번씩 방문하는 것. * 그래프와 트리의 차이? 간단하게 말하자면 그래프 중에서 방향성이 있는 비순환 그래프를 트리라고 한다. 대표적 문제 유형 1. 경로 탐색 유형 (최단거리, 시간) 2. 네트워크 유형 (연결) 연결되어 있는 그룹의 갯수 구하기 or 두 개체가 같은 네트워크 속에서 연결되어 있는지 확인 3. 조합 유형 (모든 조합 만들기) 여러가지 조합 모두 만들고 비교 ex) 프로그래머스 타겟넘버, 네트워크, 단어변환, 여행경로 등 깊이 우선 탐색 (DFS, Depth-Firs..

728x90
반응형