반응형

분류 전체보기 359

[백준 알고리즘] 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

[백준 알고리즘] 2910번: 빈도 정렬 (Python)

https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 소스코드 풀이 ★ 딕셔너리를 만들고, 메세지 수열의 수를 key로 잡고 빈도를 계산해줬습니다. ★ 빈도 수가 가장 높은 수부터 출력해줘야 하기 때문에 딕셔너리를 lambda 함수를 통해 value를 기준으로 내림차순 정렬해줬습니다. ★ 이후 정렬한 리스트의 값들을 돌면서 빈도수 만큼 key를 출력해줬습니다 !

Algorithm/백준 2023.10.04

[백준 알고리즘] 25192번: 인사성 밝은 곰곰이 (Python)

https://www.acmicpc.net/problem/25192 25192번: 인사성 밝은 곰곰이 첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다. www.acmicpc.net 소스코드 풀이 ★ set 자료구조를 사용한 이유는 중복 값이 배열에 들어갈 수 없기 때문에 조건문을 따로 설정해주지 않더라도 곰곰티콘을 사용한 경우 즉, 닉네임이 처음 나오는 경우만 확인할 수 있습니다. ★ flag 변수를 사용하여 flag가 True일 때는 닉네임을 set에 추가해주었고, False일 경우에는 추가하지 않았습니다 ! ★ 'ENTER'이 입력된 이후로는 들어오..

Algorithm/백준 2023.10.02

[백준 알고리즘] 1926번: 그림 (Python, BFS)

https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 소스코드 풀이 ★ 해당 좌표가 1이라면 상하좌우를 탐색하며 같은 1을 찾아나가는 전형적인 BFS 문제입니다. ★ 이중 반복문을 돌면서 해당 좌표의 값이 1이라면 그림이 그려져있는 것이기 때문에 BFS를 시작해줍니다. ★ 해당 좌표를 중복으로 탐색하지 않기 위해서 그 값을 1에서 0으로 바꿔줍니다. 그 후 상하좌우를 탐색하며 주변에 1을 가지고 있는 값들을 찾아갑니다. 이 때 값을 찾아서 다시 dq에 저..

Algorithm/백준 2023.09.28

[백준 알고리즘] 1202번: 보석 도둑 (Python)

https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 소스코드 풀이 ★ 보석 가격의 합을 최대한으로 하기 위해서는 우선순위 큐의 최대힙, 최소힙을 모두 이용해야 합니다. ★ 입력받은 보석의 정보를 무게를 기준으로 최소힙 형태로 만들어줍니다. ★ 입력받은 가방의 무게는 오름차순 정렬해주는데, 그 이유는 가방의 무게보다 작거나 같은 보석 무게 중 최댓값이 필요하기 때문입니다. 예를 들어 보석 ..

Algorithm/백준 2023.08.23
반응형