목록그래프 (51)
어흥
문제 링크: www.hackerrank.com/challenges/castle-on-the-grid/problem Castle on the Grid | HackerRank Determine the number of steps to move a castle to the goal position on a given grid. www.hackerrank.com 1. 주의할 점 - 한쪽으로 기울이면 벽이 닿거나, 장애물에 닿을때까지 계속 움직일 수 있다. - 벽이나 장애물에 닿아야만 공이 멈추는것이 아니다 2. 구현 - Check[][]배열을 통해 해당 지점에 도달하기 위해 최소 몇번 기울였는지 구한다 - 공의 시작점을 Queue에 넣는다 - 4방향 탐색을 하며 공을 진행시킨다. 이때, 공이 벽이나 장애물에 닿..
문제 링크: www.hackerrank.com/challenges/the-quickest-way-up/problem Snakes and Ladders: The Quickest Way Up | HackerRank Given a Snakes and Ladders board, what is the least number of rolls of the die in which a player can reach the destination square? www.hackerrank.com 0. 유사문제 - 백준의 숨바꼭질 유형 Ex. www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K..
문제 링크: www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 1. 주의할 점 - 다익스트라나 플로이드 와샬 알고리즘에 대해 알고 있어야 한다 2. 구현 - 각 Node마다 보유한 아이템의 수를 Item[] 배열에 담는다 - 플로이드 와샬 알고리즘을 사용하기 위해 Arr[][] 배열을 미리 초기화한다 - 간선이 주어진 경우, Arr[][]에 대입한다 - 플로이드 와샬 알고리즘을 수행한 후, 각 지점마다 수색범위 D를 넘지 않을 경우, Temp에 해당 지역이 보유한 ..
문제 링크: www.hackerrank.com/challenges/floyd-city-of-blinding-lights/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=24-hour-campaign Floyd : City of Blinding Lights | HackerRank Learn to use Floyd Warshall's algorithm ! www.hackerrank.com 1. 주의할 점 - 모든 점점에 대한 정보 : 플로이드 와샬 알고리즘에 대해 알고있어야 한다 - 시작점과 끝점이 같은 간선이 여러개 입력될 경우, 가장 마지막에 입력된 가중치를 저장한다(본문 참조) 2. 구현 - 간선에 대한 정보를 담는 A..
문제 링크: www.hackerrank.com/challenges/bfsshortreach/problem Breadth First Search: Shortest Reach | HackerRank Implement a Breadth First Search (BFS). www.hackerrank.com 1. 주의할 점 - 각 쿼리마다 사용한 전역변수를 잘 초기화한다 2. 구현 - 시작점에서 다른 Node까지의 거리를 저장하는 Dist[] 배열과 각 Node에 연결된 간선들에 대한 정보를 저장하는 V[] 벡터를 초기화한다 - 넘겨 받은 간선들에 대한 정보를 V[]배열에 저장한다 - 시작점을 Queue에 넣은 이후, BFS를 통해 다음 Node의 Dist가 현재까지의 Dist + 1보다 크다면 갱신하고 Queu..
문제 링크: https://www.acmicpc.net/problem/1238 1238번: 파티 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 www.acmicpc.net 1. 주의할 점 - 초기화를 잘 한다 - 다익스트라 알고리즘을 통해 최단거리를 구한다 - 파티로 가는, 그리고 나가는 거리의 최단거리를 구하기 위해 그래프의 방향이 반대인것도 구해서 벡터 V[][]에 저장한다 2. 구현 - 입력받은 단방향 그래프: 파티 -> 집으로 갈때의 최단거리 - 입력받은 단방향 그래프에서 방향을 반대로: 집 -> 파티까지의 최단거리 - 입력받을 때 단방향그..
문제 링크: https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 문제 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 www.acmicpc.net 1. 주의할 점 - 1 ->2, 2,3,4팀인 경우 생각해줘야 한다 (2->3, 3->4, 4->2를 통해 이미 2,3,4는 팀이 생성되었다고 가정) - Deque를 이용한다 2. 구현 - A학생이 어떤 학생과 팀이 되고 싶어하는지를 Arr[A] 배열에 저장한다 - Check[] 배열을 전부 False로 초기화하여 팀 검사가 이루어지지 않았다고 설정한다 - 1~Num 까지의 학생들을 전부 ..
문제 링크: https://www.acmicpc.net/problem/18223 18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 1. 주의할 점 - 다익스트라 알고리즘에 대해 알고 있어야 한다 - 다익스트라 알고리즘을 수행할때, 초기화를 잘해줘야 한다 2. 구현 - 민준이가 건우를 도와서 마산에 도착하는 경우, 민준-> 건우 + 건우->마산까지의 거리가 민준->마산까지의 거리와 같을 때다(각 간선의 가중치는 1보다 큰 정수이기 때문이다) - 모든 간선에 대한 ..