https://www.acmicpc.net/problem/12851문제 요약수빈이는 동생과 숨바꼭질을 하고 있습니다. 수빈이는 현재 점 n에 있고, 동생은 점 k에 있습니다. 수빈이는 걷거나 순간이동을 할 수 있습니다. 만약, 수빈이의 위치가 x일 때 걷는다면 1초 후에 x - 1 또는 x + 1로 이동하게 됩니다. 순간이동을 하는 경우에는 1초 후에 2 * x의 위치로 이동하게 됩니다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시가능로 찾는 방법이 몇가지 인지 구하는 프로그램을 작성해야 합니다. 이 문제는 숨바꼭질 1과 이어지는 문제입니다.https://lgj415415.tistory.com/72 C++ / 1697 / 숨바..
https://www.acmicpc.net/problem/1697문제 요약수빈이는 동생과 숨바꼭질을 하고 있습니다. 수빈이는 현재 점 n에 있고, 동생은 점 k에 있습니다.수빈이는 걷거나 순간이동을 할 수 있습니다. 만약, 수빈이의 위치가 x일 때 걷는 다면 1초후에 x - 1 도는 x + 1로 이동하게 됩니다.순간이동을 하는 경우에는 1초 후에 2 * x의 위치로 이동하게 됩니다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성해야합니다.문제 풀이1. 수빈이와 동생의 위치를 입력받습니다.2. bfs 함수를 만듭니다. 매개변수로 탐색을 시작할 노드를 받고 큐에 넣습니다.노드 기준으로 이전 숫자, 다음 숫자, 두배인 숫자로 탐색을 ..
https://www.acmicpc.net/problem/7576문제 요약토마토를 보관하는 큰 창고가 있습니다.창고이 있는 토마토들은 익어있거나 익지 않은 토마토가 있습니다.보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 됩니다.인접한 토마토는 왼쪽, 오른쪽 앞, 뒤 네 방향에 있는 토마토를 의미합니다.대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정합니다.보관된 토마토들이 며칠이 지나면 다 익게 되는지 그 최소 일수를 구해야합니다. 1은 익은 토마토0은 익지 않은 토마토1은 토마토가 들어 있지 않은 칸문제 풀이1. 창고의 사이즈를 입력받습니다.2. 창고에 토마토를 입력받는데, 익은 토마토..
https://www.acmicpc.net/problem/10026문제 요약적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못합니다.n * n 크기의 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있습니다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있습니다. 또 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속합니다. (색약인은 R과 G도 같은 색상이라 합니다.)RRRBBGGBBBBBBRRBBRRRRRRRR위에 같은 경우는 일반인은 4개, 색약인은 3개의 구역으로 구분 할 수있습니다.문제 풀이1. 그리드를 입력받을 백터를 만듭니다.2. 정상인인 경우, 색약인인 경우 방문체를 위한 백터를 만듭니다.3. 그리드를 입력 받습니다..
https://www.acmicpc.net/problem/14940문제 요약n * m 지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구해야 합니다.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 합니다.1은 갈 수 있는 곳 0은 못가는곳 갈 수 있는데 도달할 수 없는 위치는 -1을 출력해야합니다.문제 풀이1. bfs에 필요한 변수들을 선언합니다.2. 2차원 백터로 지도를 입력받습니다.3. 입력 받을때 출발지점은 0으로 갈 수 있는 지점은 -1로 받습니다. 4. 갈 수 있는데 도달하지 못하는 경우는 bfs 탐색 할 때 접근을 못하기 때문에 초기값을 -1로 해줘야 처리 할 수 있습니다.5. bfs함수를 만듭니다. 탐색중 도달 할 수있는 지역이면 -1을 1로 바꾸고 가중치를 더해줍..
https://www.acmicpc.net/problem/2178문제 요약n * m 크기의 배열로 표현되는 미로가 있을때 1은 이동할 수 있는칸 0은 이동할 수 없는 칸 입니다.( 1, 1 )에서 출발하여 ( n, m )의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성해야합니다.문제 풀이1. 숫자를 받을 2차원 배열과 방문했었는지 식별하기 위해 bool 2차원 배열을 만들고 4방향 으로 x축 y축 좌표를 탐색하기 위한 배열 2개를 만들어줍니다.2. n 과 m을 입력 받고 2차원 벡터 배열 사이즈를 재정의 해줍니다.3. 2차원 반복문으로 값을 string으로 받고 벡터에 문자를 숫자로 바꿔주어 넣습니다.4. bfs 함수를 만들어줍니다. bfs는 너비 우선 탐색으로 루트 노드에서 시작..