728x90 구현56 [python] 백준 21609 상어 중학교 https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 문제 해결 놓치기 쉬운 조건들을 먼저 잘 인지하고 있어야한다. 블록 그룹은 연결된 블록 집합이며 일반 블록이 적어도 한개 이상 있어야하며 색은 모두 같아야한다.(무지개는 무조건 포함가능) 연결된 블록이 가장 많은 블록 집합을 골라야한다. 만약 같은 것이 존재한다면 무지개색이 가장 많은 것을 선택하며 그래도 같으면 기준 블록 행이 가장 큰 것, 그래도 같으면 기준 블록 열이 가장 큰 것을 고르는.. 2023. 7. 8. [python] 백준 20057 마법사 상어와 토네이도 https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 문제 해결 토네이도의 움직임을 관찰한 다음 움직이는 모래를 그래프로 이동시켜 그래프를 빠져나가는 모래의 양을 구하는 문제이다. 토네이도의 움직임의 규칙성 부터 찾아야한다. 서, 남, 동, 북 방향으로 순서대로 움직이며 서,남/동,북 으로 바뀔 때 마다 움직이는 칸의 개수가 한 칸 씩 증가한다. 이를 먼저 구현해야한다. 그다음 모래가 흩날리는 영역을 구해야하는데..... 2023. 6. 23. [python] 백준 20056 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 문제 해결 조건이 한 번에 이해하기 까다로웠다. 이동을 할 때 n행과 1행이 연결되어있어서 n행을 넘어가면 1행으로 텔레포트(?)가 가능하고 1열과 n열이 연결되어있어 n열이 넘어가면 1열로 텔레포트가 가능하다. 그리고 바닥 함수가 기호로 써져있어서 알지 못하면 처음에 이해하기 어려울 수 있다. https://ko.wikipedia.org/wiki/%EB%B.. 2023. 6. 22. [python] 백준 9328 열쇠 https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 문제 해결 주어진 열쇠를 찾고 열쇠에 맞는 문을 열어 최대한 많은 문서를 찾는 문제 움직임을 보면 bfs를 이용하는 것이 편할 것 같다. 하지만 갔던 길을 또 갈 수 있으므로 갔던 길을 체크하는 visited를 성과가 있을 때마다 리셋을 시켜줘야한다. key의 유무를 dictionary를 통해 저장하면 좋을 것 같다. 한 번 얻은 문서는 다시 중복해서 먹을 수 없으므로 문서를 얻었으면 answer += 1을 .. 2023. 6. 22. 이전 1 ··· 3 4 5 6 7 8 9 ··· 14 다음 728x90