목록CodingTestTraining/BaekJoon (24)
승쨩개발공부

자 수빈이와 동생은 0 수빈이는 앞과 뒤 로 이동할수있고 현재위치 * 2 의 위치로 이동할수있다. 이걸 생각해보면 배열이고 이동거리를 저장해야하니 BFS로 풀 수 있겠다 라는 생각이 들것이다. 일단 배열을 모두 -1로 초기화해주고 수빈이의 초기위치를 0으로 만든다 그리고 Queue에 집어넣는다배열을 모두 -1로 초기화 했으니 수빈이의 거리가 -1이 아니라 양수로 바뀔떄까지 반복을 돌리면 되겠다. 그림으로 한번 거리를 봐보자. .5번은 수빈이의 초기 위치고 17번은 동생의 위치이다.5 -> 10 -> 9 -> 18 -> 17 로 간다면 4초가 걸리게 될것이다.

이번엔 불과 지훈이가 동시에 있다 지훈이가 불에 타기전에 탈출을 할 수 있는지 체크를 해야한다. 현재 보기 TK가 4,4밖에 없으니 5,5로 예를들어 설명을 해보겠다.열과 행이 5,5인 Board가 다음과 같이 입력이 주어졌다고 치겠다. 저번에 토마토 문제처럼 전부 거리를 -1로 만들고지훈이 위치를 거리 0으로 만들고 시작해보자 지훈이의 이동 거리의 경로가 불번짐에 이동 거리보다 적기떄문에 무사히 탈출이 가능하다. 그럼 이렇게 그려보면 유추가 가능하다큐를 두개(지훈,불),거리측정을 두개(지훈,불) DFS를 두번(지훈,불) 돌리고 지훈이 DFS에서 불번짐 거리를 재면 되겟구나?범위를 벗어나면 탈출이고 큐가 빌떄까지 범위를 못 벗어나면 탈출을 못 하는구나? 여기서 중요한 포인트는 Distance가 벽도 -..

일단 상하좌우로 퍼져나가니 BFS로 풀수있다는걸 눈치를 챌 수 있다.하지만 여지껏 풀었던 BFS문제와 다르게 시작점이 여러개일수있다 TK 3번을 보자. 이렇게 input이 들어오게 되는데.-1이 있는곳을 제외하고 퍼지면서 1씩 증가해야하니이런식으로 되어야 할것이다. 근데 출력에서 0 = 처음부터 모두 토마토가 익어있는거고, -1은 모두 익지 못하는 상황이고,나머지는 토마토가 익을 수 있는 일 수를 출력하는 것 이다. 그러면 여기서 input을 보면 생각을 해 볼 수 있다.그러면 상하좌우로 갈 수 있는 부분만 -1로 미리 표시를 해놓으면 되지 않을까?이런식으로 말이다.-1만 움직일 수 있도록 해놓고 만약 -1일이 모두 상하좌우로 이어져 있지 않아서 BFS를 하고나서도 -1이 남아있다면?모두 익지 못하는 상..

0,0에서 시작해서 n-1,m-1까지 최단거리를 구하는 방법이다BFS는 전에 문제 그림에서 설명한것처럼 구하면 되는데 일단 그림을 먼저 그려보자.인접한곳에 상하좌우 카운트를 늘려주면 되는데 처음엔 배열로 문제를 풀어서 오답이 나왔다 입력을 잘 보니각각의 수들은 붙어서 입력으로 주어진다라고 써져있었다 문제를 풀다보니 저걸 못봐서 오답이 나왔다.배열에서 문자열로 바꿔주니 정답이 나왔다. 틀린 배열 코드 정답 문자열 코드문자열이니 조건도 != 1 이아니라 != '1' 로 해줘야한다.

나중에 들어온 값이 열린 괄호인지 체크해서 지우면 문제를 풀수있다LIFO구조로 풀어야하니 스택을 이용하면 된다.GetLine과 스택을 이용해서 문제를 풀면 된다.

N개의 크기를 가진 deque에서 M개의 수를 뽑아내는 문제이다1번,2번,3번의 연산을 모두 사용해서 2번,3번 연산을 가장 적은 연산으로 모든 수를 뽑아내야한다.(1번연산은 제외) 예제 2번으로 설명을하겠다1 ~ 10 을 가진 큐가 있다 여기서 3개의 숫자를뽑아야하는데 뽑아야 하는 수 는 2,9,5이다 2값을 뽑아 내려면 2번연산 -> 1번연산으로 가장 빠르게 2를 없앨수있다. 5값을 뽑아 내려면 3번연산 -> 3번연산 -> 3번연산 -> 1번연산 으로 9을 맨 앞으로 보낸후 없앤다. 문제는 이런식으로 풀면 된다. 문제 이해가 안갈떄는 하나씩 그려보면서 풀어보고 조건을 생각해보자.