시뮬레이션 4

[백준-파이썬] 20165: 인내의 도미노 장인 호석

문제 풀러 가기! 꼼꼼히 천천히 구현했다~ 사 방향을 일일이 코드로 짜서 좀 긴데ㅠ, 줄일 수 있을 것 같기도 하다. 🧐 헷갈렸던 부분 이미 넘어진 격자의 도미노를 공격수가 무너뜨리려고 할 때는 공격수 점수를 카운트 하면 안된다! x, y, d 는 map(int,input().split())으로 하면 안되는데 해서, 잠깐 에러를 만났다.. d는 숫자가 아니고 알파벳이다.. 다시 도미노를 쌓을 때는, 원래 가지고 있던 높이 만큼 쌓아줘야 하므로 그 높이를 origin_height에 copy.deepcopy를 이용해서 저장해뒀다. 👩‍💻 코드 import sys, collections, copy input = sys.stdin.readline N, M, R = map(int, input().split()) ..

[SWEA - 파이썬] 2382.미생물 격리

문제 보러 가기 풀이 ❄ "엄청난 알고리즘!! 을 알아야 해!!"라기 보다는 조건을 꼼꼼히 반영해서 푸는 문제였다. 나는 미생물 군집의 인덱스, 수, 이동 방향들을 리스트로 저장하고 풀었다. M 시간 동안 아래 과정을 반복했다. 1. 이동 시키기 - 이동 방향에 맞춰서 이동시키기(이동 결과를 리스트에 반영) 2. 약품 부분으로 간 미생물 군집 처리 - 수를 절반으로 - 만약 수가 0이 되면 군집 없애기 - 방향은 반대로 - 처음에는 원래 쓰던 리스트에서 del을 해서, 수가 0이 된 미생물 군집을 처리했다. 그런데 틀렸다.. 잠깐 슬퍼하다가 생각해보니, 원래 리스트에서 del을 하면 리스트 길이가 짧아져서 끝까지 볼 수 없게 된다. 그래서 새로운 리스트(new_microbes)를 만들어서 사용했고, 과정..

[백준-파이썬] 17114:미세먼지 안녕!

문제 풀러 가기~ 풀이 일단은 공기 청정기 위치를 찾았다. 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기 청정기의 위쪽 행을 찾았다! 그리고 미세먼지가 확산되는 일, 공기 청정기가 작동할 때 일어나는 일을 함수로 만들었다. 미세먼지가 확산될 때는, 미리 어떤 곳에 미세먼지가 있고, 얼마나 있는지 파악해서 리스트에 넣은 후에, 그 리스트를 돌면서 인접한 네 방향으로 확산되게 했다. 또 그 위치의 미세먼지 양도 바꿔주었다. 사실 처음에는 미리 미세먼지의 위치, 양을 저장하지 않고 그냥 for문 두개로 미세먼지 있는 곳을 만나면 확산되게 했다. 그러면 원래는 미세먼지가 없었는데, 미세먼지 확산으로 이제 미세먼지가 있는 곳도 원래 미세먼지가 있던 곳처럼 처리된다. 미세먼지의 양도 원래 양만큼이..

[백준-파이썬] 11559: Puyo Puyo

문제 보러 가기 문제에 나와있는 뿌요 뿌요 룰을 그대로 구현하면 된다. 쭉 보면서 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있는지 보고 그런 그룹이 있으면, 뿌요들 터지게 하기 (단, 여러 그룹이 터져도 한 번의 연쇄만 추가됨) 남은 뿌요들이 중력의 영향을 받아서 떨어지게 하기 또 다시 1번으로 돌아가기 같은 색 뿌요가 상하좌우 4개 이상 연결되어 있는지 보는 것은 BFS로 했다. 중력의 영향받아서 잘 떨어지게 하는 것을 구현하는 게 어려웠다.ㅠ if와 while들을 이용해서 구현했다. 좀 복잡한 시뮬레이션, 구현도 연습해야겠다. 전에 풀었던 10703: 유성 문제가 떠올라서 비슷하게 하려고 했으나, 다른 점이 많아서 참고만 한 것 같다. import collections import sys inp..

728x90