반응형

Algorithm/백준 212

[백준 알고리즘] 16928번: 뱀과 사다리 게임 (Python, BFS)

https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 소스코드 풀이 ★ 주사위를 던지면서 모든 경우의 수를 확인해야 하는 완전탐색 문제입니다 ! 이 때 사다리와 뱀의 정보를 이용하는 것이 중요합니다. 뱀은 높은 칸에서 낮은 칸으로 이동하기에 100으로 가기에는 필요없다고 생각할 수도 있는데, 사다리 (10 - 50), 뱀 (50-28), 사다리 (28 - 99)처럼 뱀을 이용해서도 100으로 빠르게 이동..

Algorithm/백준 2023.10.18

[백준 알고리즘] 13549번: 숨바꼭질 3 (Python, BFS)

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 소스코드 풀이 ★ 수빈이가 이동할 수 있는 경우를 다 탐색한 후, 그 이후에 가지를 쳐서 뻗어나가는 형식의 전형적인 BFS 문제인 거 같습니다 ! ★ 수빈이가 이동할 수 있는 방법은 순간이동과 걷기가 있습니다 ! 이 떄 순간이동을 하는 경우는 초가 증가하지 않지만 걷는 경우에는 초를 1씩 증가시켜줍니다. ★ BFS 안의 for문을 돌 때 순간이동을 하는 경우 ..

Algorithm/백준 2023.10.18

[백준 알고리즘] 2346번: 풍선 터뜨리기 (Python)

https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 소스코드 풀이 ★ 알고리즘을 풀다보면 리스트를 좌우로 회전하는 문제를 많이 만날 수 있습니다. 그런 유형을 만날 때마다 일일이 구현하는 경우가 대부분이었는데, deque의 rotate함수를 사용하면 회전을 쉽게 구현할 수 있습니다! ★ rotate()함수는 인자로 양수를 넣어줄 경우 오른쪽 회전을 하게 되고, 음수를 줄 경우 왼쪽 회전을 하게 됩니다. ex) dq = deque(..

Algorithm/백준 2023.10.18

[백준 알고리즘] 2776번: 암기왕 (Python)

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 소스코드 오답 정답 풀이 ★ 위 두 코드의 차이점을 쉽게 발견하셨을까요 ?? 전 사실 이문제 엄청 간단하다고 생각했는데, 2번이나 오답을 받았습니다..! 그 이유는 테스트케이스가 하나가 아닌 t만큼 들어오기 때문에 반복해줘야 하지만 아무생각 없이 제출헀기 때문입니다 ! 꼭꼭 잘 확인하시길 바랍니당 :) ★ 저는 문제를 딕셔너리 자료구조를 사용하여 풀었습니다 ! 수첩 1에 적힌 수들을 딕셔너리에 넣어주고..

Algorithm/백준 2023.10.17

[백준 알고리즘] 2660번: 회장뽑기 (Python, BFS)

https://www.acmicpc.net/problem/2660 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net 소스코드 풀이 ★ 문제를 읽었을 때 이해하기가 조금 난해할 순 있지만 해당 회원 번호에서 모든 회원과 친구가 되기 위해서 몇번동안 BFS 안의 과정을 거쳐야 하는지 구해주시면 됩니다 ! ★ 점수를 구하기 위해 큐에 회원번호와 점수를 기록하는 수를 함께 추가하였습니다. 이 점수는 BFS 안에서 큐에 추가되는 과정마다 다른 루트로 이동하기 때문에 1씩 증가하게 됩니다. 예시 1번에서 1,2 2,3 3..

Algorithm/백준 2023.10.17

[백준 알고리즘] 4358번: 생태학 (Python)

https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 소스코드 풀이 ★ 소수점 4번째자리까지 반올림 한 뒤 출력해줘야 하는데, 이때 round 함수를 사용하면 오답으로 처리됩니다 ! 그렇기에 format이나 f-string을 사용하여 반올림 해주시면 됩니다 :)

Algorithm/백준 2023.10.16

[백준 알고리즘] 16948번: 데스 나이트 (Python, BFS)

https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net 소스코드 풀이 ★ 보통은 상하좌우 or 대각선까지 고려하여 움직이는 경우가 많은데, 이번 문제에서는 주어진 방향으로 움직이며 최소 이동횟수를 확인하는 것이 핵심입니다 !

Algorithm/백준 2023.10.16

[백준 알고리즘] 1303번: 전쟁 - 전투 (Python, BFS)

https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 소스코드 풀이 ★ 좌표 값을 입력받았을 때, 해당 좌표의 값이 'W'인지 'B'인지 확인해줍니다 ! 그 후 상하좌우 반복문을 돌면서 같은 옷을 입은 병사를 만났을 경우 변수 'white' or 'blue'를 1씩 증가시킵니다. ★ BFS가 종료되었을 경우에 n명이 모이면 n**2의 위력을 낼 수 있기에 'total_w,' 'total_s' 변수에 white, blue를 제..

Algorithm/백준 2023.10.16

[백준 알고리즘] 3184번: 양 (Python, BFS)

https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 소스코드 풀이 ★ 일반적인 탐색 문제와는 달리 좌표의 값들이 수가 아닌 문자로 되어있다는 점 !! ★ 아침까지 살아있는 양과 늑대를 구할 때 조건을 잘 확인해야 한다는 점 !!

Algorithm/백준 2023.10.16

[백준 알고리즘] 1743번: 음식물 피하기 (Python, BFS)

https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 소스코드 풀이 ★ 주변에 있는 음식물들을 탐색하여 가장 큰 음식물를 찾아내는 전형적인 BFS 문제였던 거 같습니다 ! ★ 그래프를 만들 때 시작을 0,0에서 시작하기 때문에 입력받는 x,y 좌표에 각각 -1을 해준 뒤 음식물의 위치라는 것을 1로 표시해줍니다. ★ 그래프를 탐색하면서 해당 좌표가 1일때, 즉 음식물일 때 주변을 탐색하는 BFS를 실행하게 됩..

Algorithm/백준 2023.10.04
반응형