목록알고리즘/Algorithm (31)
안 쓰던 블로그
01. 개요 만약 당신이 전교생의 데이터 중에 랜덤한 몇 명을 찾아야 한다면 일반적으로 1학년 1반부터 시작하여 그 학생이 나올 때까지 찾고, 다시 처음으로 돌아가 두 번째 학생을 같은 방법으로 찾는 식으로 수행할 것이다. 프로그래밍에서는 이것을 순차 탐색(Linear Search)이라고 명한다. 여기 이 문제를 순차 탐색에 맞게 조금 변형시켰다. https://www.acmicpc.net/problem/1920 수 찾기 문제N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력첫째 줄에 자연수 N(1≤N≤50)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤..
이 글(http://foxtrotin.tistory.com/40)에서 배열의 마이너스 주소에 대해 질문을 받았습니다.요지는 lake[-1][-1]이 왜 에러가 나지 않는가..에 관한 내용입니다. 배열이란 같은 데이터형을 가진 여러개의 데이터가 메모리 안에 쭉 나열되어 있는 것을 뜻합니다. 배열의 요소가 되는 각각의 데이터는 인덱스라는 일렬번호를 부여받는데, 컴파일 할 때 이 인덱스와 실제 메모리 어드레스간의 변환 작업을 거쳐 인덱스에 대응하는 메모리 영역을 쓸 수 있는 것입니다.이러한 이유로 lake[-1][-1]을 호출하면 우리는 모르지만 거기에 해당되는 메모리 영역을 가져오게 되기 때문에 에러가 나지 않습니다. 코드로 살펴보겠습니다 1234567891011121314151617#include int ..
DFS(Depth-First Search), 깊이 우선 탐색이란 전 탐색(Full-Search)의 한 종류로 더 이상 이동이 가능하지 않을 때까지 진행하다가 이동이 불가능하면 다시 전 단계로 돌아와 가능한 길을 찾아 움직이는 탐색 방법입니다. 다른 종류로는 BFS(Breadth-First search)너비 우선 탐색이 있습니다. 각종 프로그래밍 대회나 정보올림피아드에서 자구 나오는 문제 유형이므로 잘 알아두면 어려모로 도움이 되는 알고리즘입니다. 1. 1에서 2로 이동2. 2에서 3으로 이동3. 3에서 4로 이동4. 4에서 더 진행할 곳이 없으므로 3으로 되돌아옴5. 3에서 5로 이동6. 5에서도 진행할 곳이 없으므로 3으로 되돌아옴7. 3도 마찬가지므로 2로 되돌아옴8. 2에서 6으로 이동9. 2로 되..