Mgcllee

[알고리즘] 사이클 그래프 판별하기

그래프에서 사이클을 판단하는 것은 매우 중요합니다. 여러 그래프 탐색 알고리즘에서도 제한시간 이내에 탐색을 완료할 수 있도록 사이클에 빠지지 않기 위해 방문을 기록하는 배열을 사용하기도 합니다. 사이클과 관련된 알고리즘 문제에서는 대표적으로 사이클의 존재 여부를 판별하는 문제와 사이클에 포함된 노드를 활용하는 문제가 있습니다. 탐색하고자 하는 그래...

[백준][5427] 불

이 포스트는 백준 사이트의 불 문제 풀이입니다. 문제 해결 과정 이 문제는 불이 상하좌우 퍼지는 과정에서 상근이가 탈출할 수 있는지 확인하는 문제입니다. 여기서 불은 상하좌루로 동시에 퍼지기 떄문에 주어진 지형에서 퍼지는 과정을 BFS로 확인할 수 있습니다. 문제에서 최종적으로 구하고자 하는 것은 상근이가 탈출하는 시간이기 때문에 불이...

[C#] 람다 함수 알아보기

람다 연산자 C#에서 람다 식은 익명의 함수를 만들 수 있는 기능입니다. 즉, 함수의 이름이 존재하는 일반 함수와 다르게 이름을 선언하지 않고 사용할 수 있습니다. 이러한 람다식은 람다 연산자 =>를 사용해서 짧은 코드를 작성할 수 있고 그로 인해서 코드의 가독성을 향상 시킬 수 있다는 효과가 있습니다. 아래는 간단한 예제로 함수를 호출하여...

[SCG 프로젝트] MonoGame과 C# 서버로 간단한 프로그램 만들기

이 포스트는 개인 프로젝트의 기록입니다. C# 을 사용해 보기 위해 무엇을 만들어볼까 고민 중 SFML처럼 Monogame이라는 오픈소스 프로젝트를 접하게 되었습니다. Monogame은 MS(MicroSoft)의 XBOX 360 게임 개발을 위해 배포하던 SDK를 오픈소스 커뮤니티에서 크로스 플랫폼으로 확장한 시킨 프로젝트입니다. 또한 가장 큰 ...

[백준][19238] 스마트 택시

이 포스트는 백준 사이트의 스마트 택시 문제 풀이입니다. 문제 해결 과정 이 문제는 손님에게 방문하고 목적지까지 최단경로로 이동하는 것을 M번 반복하는 문제입니다. 이때, 현재 연료가 0이면 ‘-1’을 출력해야 하므로 중요한 것은 이동거리에 따른 연료의 소비입니다. 이 문제에서 사용할 최단 거리 알고리즘 후보와 가능 여부는 다음과 같습...

[백준][15684] 사다리 조작

이 포스트는 백준 사이트의 사다리 조작 문제 풀이입니다. 문제 해결 과정 이 문제는 주어진 상황에서 N개의 사다리가 시작 번호와 도착 번호가 동일하도록 만들기 위한 최소의 사다리 추가 수를 구하는 문제입니다. 따라서 이 문제에서는 2가지 과정이 필요합니다. 현재 상태에서 N개가 각자 동일한 번호(시작 번호 = 도착 번호)인지 확...

[백준][1149] RGB 거리

이 포스트는 백준 사이트의 RGB거리 문제 풀이입니다. 문제 해결 과정 문제를 작은 문제들로 나누어 풀 수 있는 문제로 DP(다이나믹 프로그래밍)를 활용하여 해결하였습니다. 문제에서 주어진 3가지 조건을 지키며 집을 칠하는 최소 비용을 구해야하므로 먼저, 점화식을 찾고자 하였습니다. 문제의 3가지 조건이 말하는 의미는 결국 이웃한 집끼...