[백준][17837] 새로운 게임 2
이 포스트는 백준 사이트의 새로운 게임 2 문제 풀이입니다. 문제 해결 과정 이 문제는 3차원 배열을 사용하여 풀 수 있는 문제입니다. 한 턴이 실행되는 과정은 아래와 같습니다. 1번부터 K번까지의 플레이어가 본인의 방향에 맞춰 이동 이동한 칸의 색상에 따라 행동 모든 플레이어가 이동할 때 마다 4개 이상 겹쳐진 것이 없는...
이 포스트는 백준 사이트의 새로운 게임 2 문제 풀이입니다. 문제 해결 과정 이 문제는 3차원 배열을 사용하여 풀 수 있는 문제입니다. 한 턴이 실행되는 과정은 아래와 같습니다. 1번부터 K번까지의 플레이어가 본인의 방향에 맞춰 이동 이동한 칸의 색상에 따라 행동 모든 플레이어가 이동할 때 마다 4개 이상 겹쳐진 것이 없는...
이 포스트는 백준 사이트의 여행 가자 문제 풀이입니다. 문제 해결 과정 이 문제는 플로이드 워셜 알고리즘을 사용해 풀 수 있는 문제입니다. 여행 경로별로 비용을 계산할 때, 모든 여행 지점에서 또다른 모든 지점까지의 경로를 구하는 플로이드 워셜 알고리즘을 사용하면 문제를 쉽게 풀 수 있습니다. 플로이드 워셜 알고리즘을 사용하기 전 2...
이 포스트는 백준 사이트의 거짓말 문제 풀이입니다. 문제 해결 과정 이 문제는 Union-Find 알고리즘을 사용하면 쉽게 풀 수 있는 문제입니다. 문제를 간단히 정리하면, 지민이 이야기의 진실을 아는 사람이 어떠한 질병에 감염된 사람이고 모르는 사람이 순수한 사람이라고 생각하면 쉽게 이해할 수 있습니다. 감염된 사람과 함께 있는 파티...
이 포스트는 개인 프로젝트의 기록입니다. 이번 개발내용은 지난 포스트에서 언급한 클라이언트 간 충돌을 간단하게 구현했습니다. 두 객체간 충돌 확인 코드는 아래와 같습니다. static bool check_collision(int client_ticket) { for (int i = 0; i < clients.Count; i++) ...
알고리즘 문제 중, if()문의 조건식 안에 변수를 선언해 풀고자 한 문제가 있었습니다. 제가 작성한 코드는 아래와 같습니다. for(auto it = target.begin(); it != target.end(); ++it) { if(int t = original.find(*it) == string::npos) { next_t...
이 포스트는 백준 사이트의 후위 표기식 2 문제 풀이입니다. 문제 해결 과정 이 문제는 stack을 사용하는 대표적인 문제입니다. 문제에서 후위 표기식과 피연산자에 대응하는 숫자가 입력됩니다. 후위 표기식은 연산자는 가장 가까운 피연산자 2개를 사용합니다. 예를들어, \((A + (B \times C)) - (D / E)\) 수식을 후...
이 포스트는 개인 프로젝트의 기록입니다. 이번 개발 내용은 멀티 스레드에서 예상하지 못한 문제가 있었습니다. 대표적으로 아래의 코드가 그와 같습니다. for (int i = 0; i < 2; i++) { Socket new_client_socket = null; while (true) { new_clien...
그래프에서 사이클을 판단하는 것은 매우 중요합니다. 여러 그래프 탐색 알고리즘에서도 제한시간 이내에 탐색을 완료할 수 있도록 사이클에 빠지지 않기 위해 방문을 기록하는 배열을 사용하기도 합니다. 사이클과 관련된 알고리즘 문제에서는 대표적으로 사이클의 존재 여부를 판별하는 문제와 사이클에 포함된 노드를 활용하는 문제가 있습니다. 탐색하고자 하는 그래...
이 포스트는 백준 사이트의 불 문제 풀이입니다. 문제 해결 과정 이 문제는 불이 상하좌우 퍼지는 과정에서 상근이가 탈출할 수 있는지 확인하는 문제입니다. 여기서 불은 상하좌루로 동시에 퍼지기 떄문에 주어진 지형에서 퍼지는 과정을 BFS로 확인할 수 있습니다. 문제에서 최종적으로 구하고자 하는 것은 상근이가 탈출하는 시간이기 때문에 불이...
람다 연산자 C#에서 람다 식은 익명의 함수를 만들 수 있는 기능입니다. 즉, 함수의 이름이 존재하는 일반 함수와 다르게 이름을 선언하지 않고 사용할 수 있습니다. 이러한 람다식은 람다 연산자 =>를 사용해서 짧은 코드를 작성할 수 있고 그로 인해서 코드의 가독성을 향상 시킬 수 있다는 효과가 있습니다. 아래는 간단한 예제로 함수를 호출하여...