300x250
인트로 그래프의 탐색 알고리즘인 DFS(Depth First Search, 깊이 우선 탐색)를 구현해보려 한다. 그래프라는 건 추상적인 개념이다. 0번 정점과 1번 정점이 연결되어 있다는 정보만 있을 뿐 실질적으로 그래프를 구현하는 자료구조는 배열이 될 수도 리스트가 될 수도 벡터가 될 수 있다. 어떤 자료구조를 사용할진 개발자의 선택이다. 본 포스팅에선 C# 기반 배열과 리스트(List)로 구현하는 간단한 코드를 소개하려 한다. 결론부터 말하면 재귀 함수를 사용해 DFS를 구현했다. BFS가 궁금하다면? [Algorithm] BFS (Breadth First Search, 너비 우선 탐색) 알고리즘 [Algorithm] BFS (Breadth First Search, 너비 우선 탐색) 알고리즘 인트로 ..
인트로 처음 이중 for문으로 문제를 해결했는데 단일 for문으로도 가능했다는 걸 알았다. 두 방법 모두 포스팅하려 한다. 분노 유발자 문제 오늘은 수능이 끝난 다음날로 교장선생님은 1, 2학년 재학생들에게 강당에 모여 어벤져스 영화를 보여준다고 하여 학생들이 강당에 모였습니다. 강당의 좌석은 영화관처럼 계단형이 아니라 평평한 바닥에 의자만 배치하고 학생들이 앉습니다. 그런데 만약 앞자리에 앉은키가 큰 학생이 앉으면 그 학생보다 앉은키가 작은 뒷자리 학 생은 스크린이 보이지 않습니다. 한 줄에 앉은키 정보가 주어지면 뒷사람 모두의 시야를 가려 영화 시청이 불가능하게 하는 분노 유발자가 그 줄에 몇 명이 있는지 구하는 프로그램을 작성하세요. ※ 입력설명 첫 줄에 한 줄에 앉은 학생수 N(3 n; vecto..
인트로 대학교 1학년 때 코딩을 처음 배우면서 약수 구하기 과제를 참 많이 한 것 같다. 그만큼 약수 구하기가 알고리즘의 첫걸음을 시작하기 좋은 문제가 아닐까 한다. 본 포스팅에선 기본적인 약수의 개수 구하기와 여러 수의 약수의 개수를 구하는 코드를 소개하려 한다. 모두의 약수 문제 자연수 N이 입력되면 1부터 N까지의 각 숫자들의 약수의 개수를 출력하는 프로그램을 작성하 세요. 만약 N이 8이 입력된다면 1(1개), 2(2개), 3(2개), 4(3개), 5(2개), 6(4개), 7(2개), 8(4 개)와 같이 각 숫자의 약수의 개수가 구해집니다. 출력은 다음과 같이 1부터 차례대로 약수의 개수만 출력하면 됩니다. 1 2 2 3 2 4 2 4 와 같이 출력한다. ※입력설명 첫 번째 줄에 자연수 N(5 n..
인트로 알고리즘 코드는 C 또는 C++ 기반으로 작성되었습니다. 자릿수의 합 구하기 알고리즘 기초에서 참 많이 보는 문제 유형같다. 예를 들어 123을 321로 바꾸기, 각 자릿수의 합을 구하기, 가장 많이 사용된 숫자 구하기 등 기본 원리만 알고가면 쉽다. 자릿수의 합 문제 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 int digit_sum(int x)를 꼭 작성해서 프로그래밍 하세요. ※입력설명 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. ※출력설명 자릿수의 합이 최대인 자연수를 출력한다. 자리수의 합이 최대인..