Algorithm 32

2606_바이러스 ( BFS )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 2606_바이러스 - 이 문제는 바이러스에 걸린 1번노드와 연결된 연결요소의 수를 확인하여 출력하는 문제이다. 11724 연결요소의 개수 문제와 같은 방법으로 풀이가 가능하다. - 문제 풀이는 BFS를 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

1260_DFS와 BFS ( DFS, BFS )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 1260 DFS와 BFS - 이 문제는 DFS와 BFS의 구현을 목표로하는 문제이다. 시간제한이 빠듯하거나 다양한 경우의 수가 존재하는 문제가 아니므로 DFS와 BFS에 대한 구현을 잘 못할때 연습용 문제로 삼을 수 있다. - 문제 풀이는 DFS와 BFS를 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

7562_나이트의이동 ( BFS )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 7562_나이트의이동 - 이 문제는 체스판의 나이트가 목적지까지 이동하는데 걸리는 최적해를 출력하는 문제이다. 따라서 BFS를 이용하여 움직일 수 있는 모든 경우에 대해 돌려보고 목적지에 가장 빨리 이동한 경우를 출력하면 된다 - 문제 풀이는 BFS을 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

2667_단지번호붙이기 ( BFS )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 2677_단지번호붙이기 - 이 문제는 지도상 주어진 그래프들을 찾고, 각 그래프의 연결요소가 몇개인지 오름차순으로 출력하는 문제이다. - 문제 풀이는 BFS을 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

11724_연결요소의개수( DFS, BFS)

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 11724_연결요소의개수 - 이 문제는 DFS와 BFS의 구현을 목표로하는 문제이다. 시간제한이 빠듯하거나 다양한 경우의 수가 존재하는 문제가 아니므로 DFS와 BFS에 대한 구현을 잘 못할때 연습용 문제로 삼을 수 있다. - 문제 풀이는 DFS와 BFS를 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

2869_달팽이는올라가고싶다 ( 이분탐색 )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 2869_달팽이는 올라가고 싶다 - 이 문제에서 유의할 점은 시간 제한부분이다. 문제의 답을 구하기에는 단순한 사칙연산과 대입으로 문제없이 풀이가 가능하지만 시간제한이 0.15초인 문제이다 - 다른 방법보다 수식을 세워 해결하면 어렵지 않은 문제이지만 꼭! 이분탐색으로 풀어보길 추천한다! 꼮! - 이분 탐색이 단순히 정렬된 숫자에서 값을 찾을 때만이 아닌 특정 범위가 주어지고, 오름차순의 상태를 가지고 있을 때 문제를 해결할 수 있는 하나의 방법이라는 것을 알려주는 소중한 문제이다! - 단순 대기업 코딩 테스트도 중요하지만 이러한 문제를 답습함으로써 본인의 실력이 한단계 ..

11728_배열합치기 ( merge sort )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 11728_배열합치기 - 이 문제에서 유의할 점은 시간 제한부분이다. 문제의 답을 구하기에는 단순한 정렬 방식이라면 모두 구할 수 있지만 시간제한 내에 해결하기 위해서는 퀵 정렬이나 합병 정렬과 같은 알고리즘을 구현하여 해결하여야한다 - 문제 풀이는 합병 정렬을 구현하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자.

16924_십자가찾기 ( Brute Force )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 16924_십자가찾기 - 이 문제에서 유의할 점은 같은 위치에 크기가 다른 중복된 십자가 패턴이 존재할 수 있다는 것이다 - 문제 풀이는 모든 경우에 대해 십자가 패턴을 구하도록 brute force 을 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자

2206_벽 부수고 이동하기 ( BFS )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 2206 벽부수고 이동하기 - 이 문제는 단순한 미로찾기에서 벽을 부술 수 있는 기회가 1회 추가된 복합 문제이다 - 단순히 접근하면 지도 전체에서 벽을 1번 부순 모든 경우의 수를 brute force 형태로 찾은 뒤 BFS로 각 경우마다 최단 거리를 구하여 결과를 도출할 수 있다 - 하지만 그럴 경우 당연히 시간초과의 늪에 빠지게 된다. - 이에 대해 고민을 한 결과 벽을 부술 수 있는 상태 값을 만들어 문제를 해결하였지만 " 틀 렸 습 니 다 " 만 나왔을 뿐이다...ㅂㄷㅂㄷ - 여러 반례를 확인해본 결과 벽을 부수고 목적지까지 가다가 새로운 벽을 만났을때, 벽을 부..

1920_수찾기 ( binary_search, sort )

본 포스팅은 문제에 대한 접근에 문제가 없지만 코드를 구현함에 있어서 어려운 분들에게 도움이 되었으면 하고자하여 작성하게 되었습니다. 1920 수찾기 - 이 문제에서 유의할 점은 탐색 시간을 줄이기위해 이진 탐색을 선택할때 자료를 정렬시켜야한다는 점, cpp io stream을 사용할때 속도제한에 문제가 생길 수 있다는 점 정도이다 - 문제 풀이는 이진탐색과 합병정렬을 이용하여 해결하였다. - 자세한 내용은 코드의 주석을 참고하자