골드 V에 해당하는 BFS문제입니다. 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마..
식사 중인 철학자 문제 설명 Dining philosopher 문제는 프로세스들 간의 동기화 문제에 대한 대표적인 예로서, 실용성보다는 동기화 문제 자체의 이해를 돕기 위한 가상적인 문제입니다. 5명의 철학자들이 원탁에 둘러앉아서 배가 고프면 스파게티를 먹고 배가 부르면 생각에 잠기는 작업을 반복한다. 스파게티를 먹기 위해서는 젓가락 두 개가 필요한데 원탁에는 철학 사이마다 한 개씩만 놓여 있으므로 젓가락은 양 옆의 철학자와 공유하여 사용해야 한다. 여기서 각 철학자를 하나의 프로세스로 각 젓가락을 하나의 공유자원 혹은 공유 변수로 생각하면 그대로 프로그래밍 문제로 바뀐다. 데드락이란 Deadlock이란, 죽어 있는 잠김 상태 즉 전혀 풀릴 가능성이 없는 잠김 상태를 지칭한다. 보다 간단한 예로서 금고가..
24년 인생 첫 블로그를 만들었다. 열심히 해봅시다. 파이팅!