목록CodingTestTraining (34)
승쨩개발공부

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의 삽입함 이 과정에서 인접한곳이 없어서 끝나게된다면..

나중에 들어온 값이 열린 괄호인지 체크해서 지우면 문제를 풀수있다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을 맨 앞으로 보낸후 없앤다. 문제는 이런식으로 풀면 된다. 문제 이해가 안갈떄는 하나씩 그려보면서 풀어보고 조건을 생각해보자.

이것도 상당히 쉽다 deque를 이용해 push를뺴고 출력하라는것만 출력하면된다.