목록전체 글 (192)
승쨩개발공부

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

코딩테스트를 볼떄 내가 문제를 풀다가 멈칫한 개념인데 위 1926번 문제 그림 같이 입력이 띄어서 입력을 받으면 한글자씩 입력받으라는뜻 즉 배열(문자)로 입력받으라는 뜻이고. 위 2178 문제 미로 탐색 처럼 입력이 붙어서 입력을 받으면 문자열로 입력을 받으라는 뜻이다. String 으로 입력을 받아도 문자열이기에 위 그림처럼 입력을 받으면 2차원 배열로 등록이 된다. 알아보기 쉽게 board[n-1][m-1]은 9로 저장한다. 결과값

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

문제를 쪼개서 생각해보자 항상 문제를 쪼개서 생각하는 습관을 들이자.자 열과 행이 최대 1 그리고 그림의 개수, 최대 그림 넓이를 출력하는 문제이다.1. 열과 행 입력 및 열과 행에 크기에 맞는 입력이 필요함. = 2중for문그리고 시작점이 없으니 1이 적힌 인덱스를 찾아야한다 또 열과 행을 돌아야함.2. 2중for문으로 1이 적인곳을 찾아냄 대신 0이거나 이미 방문했다면 건너뛰면됨찾아냈다면 그쪽은 1이 있는곳이므로 즉 그림의 개수의 count를 늘리면됨3. 1을 찾았다면 방문했다고 해주고 q에 삽입함.4. q의 front를 다른 변수에 넣어주고 q의값을 뻄 그리고 q의 x값 y값을 동서남북으로 비교하며 동서남북에 1이 있다면 방문했다고 넣어주고 q의 삽입함 이 과정에서 인접한곳이 없어서 끝나게된다면..