몽셀통통의 블로그
문제https://www.acmicpc.net/problem/1759 풀이모든 경우의 수를 체크 해야 하므로 dfs 사용arr 배열에 주어진 알파벳을 담고 visit 배열을 사용해 어떤 인덱스를 방문 했는지 체크하였다알파벳 모음은 a,e,o,i,u로 총 5개 이며 모음이 최소 1개, 자음이 최소 2개라는 조건을 맞추기 위해 둘다 카운트한다모두 C번을 방문하였다면 모음이 최소 1개, 자음이 최소 2개라는 조건을 맞추었는지 확인하고 그렇지 않다면 반환한다만약 맞다면 visit 배열 중 1인 인덱스만 arr를 차례대로 출력해 준다. 코드12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include usi..
문제https://www.acmicpc.net/problem/2589 풀이각 섬의 가장 멀리 있는 땅간의 최소 거리를 구하는 문제 이므로 bfs 사용가장 멀리 있는 땅간의 최소 거리라는 말이 어려운데 사실 두가지 조건만 지키면 된다1) 한번 지나갔던 땅은 다시 지나가지 않을 것2) 이쪽에서 저쪽으로 움직일때 최단 거리로 움직일 것위의 두가지를 만족하는 가장 멀리 있는 땅을 구하는 방법이다 처음에 문제를 풀때 dfs로 풀어서 2)번을 만족하지 못하였다그리고 모든 각각의 땅에서 bfs를 돌려야 해서 시간 초과로 걸릴 줄 알았는데배열의 범위가 크지 않아서 무사 통과한듯 싶다 코드12345678910111213141516171819202122232425262728293031323334353637383940414..
문제https://www.acmicpc.net/problem/1261 풀이최소로 벽을 뚫고 지나가는 횟수를 구하는 것이므로 bfs 사용이번에는 덱을 이용했는데 왜냐하면 visit 배열을 사용할 것인데 만약 덱을 사용하지 않으면벽을 뚫은 최소 횟수의 방향인데도 불구하고 visit이 체크되어서 방문하지 않을 수도 있기 때문이다이를 방지하려면 다익스트라로 구현을 하던가 덱을 사용하면 된다나는 덱을 사용하였는데이때 push를 할때 벽을 뚫지 않았으면 먼저 방문해야하는 곳으로 판단하여 push_front를 사용해 앞쪽에 넣어주고벽을 뚫었으면 나중에 방문해야할 곳으로 판단하여 push_back을 사용하였다 코드12345678910111213141516171819202122232425262728293031323334..