본문 바로가기

반응형

백준

(329)
[BOJ] 백준 2206 벽 부수고 이동하기 (Swift) 문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 BFS로 풀이할 수 있는 문제입니다. 벽을 한 번도 안부수고 이동하는 것과, 한 번 부수고 이동하는 것을 나누어서 생각해야합니다. 벽을 부시고 그 좌표를 방문했는지, 한 번도 안부수고 방문했는지를 나타내기 위해 3차원 Bool 배열을 사용하였습니다. 벽을 안부셨다면 다음 이동할 좌표가 0이면 그냥 방문하면되고, 1이라면 벽을 부시고 방문할 수 있습니다. 벽을 한..
[BOJ] 백준 9205 맥주 마시면서 걸어가기 (Swift) 문제 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 풀이 BFS로 풀이할 수 있는 문제입니다. 입력으로 x, y 좌표를 주기 때문에 방향을 사용하여 풀이해야 하나 헷갈릴 수 있지만 그렇지 않습니다. 단순히 상근이네 집에서 락 페스티벌의 좌표로 이동할 수 있는지 확인하는 것에 중점을 두어야 합니다. 상근이네 집, 편의점, 락 페스티벌의 좌표를 노드라고 생각하고, 노드 사이 거리가 1,000 이하라면 연결되어 있다고 생각합시다. 1,000 ..
[BOJ] 백준 2162 선분 그룹 (Swift) 문제 https://www.acmicpc.net/problem/2162 2162번: 선분 그룹 첫째 줄에 N(1 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N+1번째 줄에는 양 끝점의 좌표가 x1, y1, x2, y2의 순서로 주어진다. 각 좌표의 절댓값은 5,000을 넘지 않으며, 입력되는 좌표 사이에는 빈칸이 하 www.acmicpc.net 풀이 CCW를 사용해 선분이 교차되는지 확인하고, 유니온 파인드를 사용해 풀 수 있는 문제입니다. 입력받은 모든 선분들에 대해 교차하는지 확인을 해주어야 합니다. 교차한다면 union 연산을 실행하여 같은 부모로 넣어줍시다. 저는 숫자가 더 작은 번호가 부모로 넣어주었습니다. 모든 선분들에 대해 확인했다면, 다시 한번 find 연산을 해 최대 부모? 의 번호..
[BOJ] 백준 20149 선분 교차 3 (Swift) 문제 https://www.acmicpc.net/problem/20149 20149번: 선분 교차 3 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 풀이 https://dev-mandos.tistory.com/314 [BOJ] 백준 17387 선분 교차 2 (Swift) 문제 https://www.acmicpc.net/problem/17387 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 풀이 https://dev-mandos.tistory.com/313 [BO..
[BOJ] 백준 17387 선분 교차 2 (Swift) 문제 https://www.acmicpc.net/problem/17387 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 풀이 https://dev-mandos.tistory.com/313 [BOJ] 백준 17386 선분 교차 1 (Swift) 문제 https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net dev-mandos.tistory..
[BOJ] 백준 17386 선분 교차 1 (Swift) 문제 https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 풀이 CCW를 사용해 풀이할 수 있습니다. CCW를 사용해 반시계방향이면 1, 시계방향이면 -1, 직선일 때 0을 리턴하도록 하였습니다. 다음과 같이 1, 2, 3, 4 라는 점이 있을 때 123 의 방향과 124의 방향은 반대입니다. 따라서 두 선분은 교차하고 있다고 할 수 있습니다. 하지만 다음과 같은 상황에서는 123과 124의 방향이 반대인데 교차하지 않고 있습니다. 34 선분에 대해서 1과 2에 대한 ..
[BOJ] 백준 25308 방사형 그래프 (Swift) 문제 https://www.acmicpc.net/problem/25308 25308번: 방사형 그래프 게임 캐릭터의 능력치를 한 눈에 보기 좋게 나타내는 방법으로 방사형 그래프가 있다. 캐릭터는 8개의 능력치를 갖고 있고 각 능력치를 $a_1, a_2, \cdots, a_8$이라고 하면, 그래프는 팔각형 형태이고 www.acmicpc.net 풀이 먼저, 순열을 통해 능력치를 나열할 수 있는 모든 경우를 구해줍시다. 이제 이 능력치에 대해서 a1, a2, a3가 볼록인지, a2, a3, a4가 볼록인지 ... a8, a1, a2가 모두 볼록인지 확인해주고 모두 볼록이라면 볼록 다각형이 만들어지는 경우일 것입니다. 다음과 같은 공식을 통해 볼록인지 확인할 수 있습니다. $(a1 \times a3) \time..
[BOJ] 백준 11758 CCW (Swift) 문제 https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net 풀이 점 3개를 가지고 방향성을 알 수 있는 CCW라는 알고리즘이 있습니다. 공식으로는 $direction = (x1 \times y2 + x2 \times y3 + x3 \times y1) - (y1 \times x2 + y2 \times x3 + y3 \times x1)$ 이 $direction$이 양수이면 반시계방향, ..

반응형