[백준][1987] 알파벳
이 포스트는 백준 사이트의 알파벳 문제 풀이입니다. 문제 해결 과정 이 문제는 DFS와 아스키 코드를 사용한 방문 기록 배열을 이용하여 해결할 수 있습니다. DFS를 재귀적으로 실행하면서 방문한 거리까지를 최댓값과 비교하면 됩니다. 여기서 중요한 것은 방문했던 알파벳은 다른 위치에 있더라도 재방문이 불가능하다는 것 입니다. 따라서 맵...
이 포스트는 백준 사이트의 알파벳 문제 풀이입니다. 문제 해결 과정 이 문제는 DFS와 아스키 코드를 사용한 방문 기록 배열을 이용하여 해결할 수 있습니다. DFS를 재귀적으로 실행하면서 방문한 거리까지를 최댓값과 비교하면 됩니다. 여기서 중요한 것은 방문했던 알파벳은 다른 위치에 있더라도 재방문이 불가능하다는 것 입니다. 따라서 맵...
이 포스트는 “게임 서버 프로그래밍 교과서”를 참고하여 작성된 포스트입니다. 이전 포스트에서 논블로킹(Non-blocking) 소켓에 대해 설명했습니다. 논블로킹 소켓의 장단점을 정리하면 아래와 같습니다. 장점 단점 스레드 블로킹이 없으므로중도 취소 같은 통제 가능 ...
이 포스트는 백준 사이트의 벽 부수고 이동하기 문제 풀이입니다. 문제 해결 과정 이 문제는 일반적인 탐색 문제와 다른 방문 기록을 사용해야 해결할 수 있습니다. 문제의 설명처럼 막혀있는 벽을 부수고 이동하면 최단거리가 갱신될 때, 벽 1개를 부술 수 있습니다. 여기서 2차원 배열의 방문 기록을 사용하면 현재 이동중인 칸이 벽을 부수고 ...
이 포스트는 “게임 서버 프로그래밍 교과서”를 참고하여 작성된 포스트입니다. 논블로킹 소켓이란 이름 그대로 블로킹하지 않는 소켓입니다. 이번 포스트에서는 논블로킹 소켓은 무엇이고 왜 필요한지에 대해 작성해 보겠습니다. 블로킹 소켓에 대한 내용은 다른 포스트에서 다룹니다. 막힘없는 소켓 통신 송신자와 수신자가 각각 1명뿐인 일대일 ...
이 포스트는 백준 사이트의 쿼드 트리 문제 풀이입니다. 문제 해결 과정 이 문제는 문제를 작은 문제로 나눠 해결하는 DP를 활용해 풀 수 있습니다. 사각형이 4개의 부분으로 나뉘었을 때, 방문하는 순서는 아래와 같습니다. 1 2 3 4 ...
이 포스트는 “게임 서버 프로그래밍 교과서”를 참고하여 작성된 포스트입니다. 블로킹 블로킹(Blocking)이란 스레드가 대기하는 현상을 의미합니다. 예를들어, 파일을 읽는 함수를 호출하면 스레드는 처리 요청을 운영체제에 요청하고 응답이 올 때까지 대기합니다. 이처럼 스레드가 대기하는 현상을 모두 블로킹이라고 합니다. 블로킹 상태에 있는 스...
이 포스트는 백준 사이트의 빙산 문제 풀이입니다. 문제 해결 과정 이 문제는 BFS와 시뮬레이션으로 문제를 해결할 수 있습니다. 여기서 가장 중요한 것은 BFS를 사용해서 무엇을 탐색할지 입니다. 입력받은 모든 칸을 순회하면서 주위에 얼음을 확인할 경우, 시간이 오래걸리기 때문에 얼음 위치만 저장하는 큐를 저장하고 큐에서 하나씩 꺼내...
이 포스트는 백준 사이트의 미로 탐색 문제 풀이입니다. 문제 해결 과정 이 문제는 BFS 탐색 으로 해결할 수 있습니다. 문제에서 주의할 점은 입력의 형태가 공백 없는 숫자로 전달되기 때문에 이를 변환해야 합니다. 코드 구현 #include <iostream> #include <queue> int row, ...
이 포스트는 백준 사이트의 평범한 배낭 문제 풀이입니다. 문제 해결 과정 이 문제는 다이나믹 프로그래밍(DP)로 해결할 수 있는 대표적인 문제입니다. 준서는 최대 K 까지 배낭에 담을 수 있으므로 K 이하인 물건은 모두 담을 수도 있습니다. 따라서 DP 테이블을 사용하여 N개의 물건을 최대 K 까지 담았을 때의 값을 구하였습니다. ...
프로세스의 정의 프로세스는 일반적으로 CPU(프로세서)에 의해 처리되는 사용자 프로그램, 시스템 프로그램 등 실행중인 프로그램을 의미합니다. 프로세스는 실행중인 프로그램이라는 정의 외 여러 정의가 존재합니다. PCB(Process Control Block)을 가진 프로그램 메인메모리에 적재된 프로그램 운영체제가 관리하는 실행 단위 ...