본문 바로가기

분류 전체보기293

[알고리즘 문제] 회전판과 로봇 (Python / 파이썬) 문제 가로 N칸, 세로 M칸으로 이루어진 격자판이 주어지고, 그 중 한 개의 칸에 로봇이 존재한다. 로봇은 동(E), 서(W), 남(S), 북(N) 4 방향으로 움직일 수 있다. 각 칸에는 로봇이 얻을 수 있는 점수가 적혀있거나 장애물이 존재한다. 점수는 자연수로 주어지며, 장애물은 -1로 주어진다. 로봇은 움직일 때 마다 자신이 위치해 있는 곳의 점수를 얻게 되고, 해당 칸의 값은 0으로 바뀌게 된다. 로봇의 초기 위치에는 장애물이 존재하지 않으며, 항상 초기 위치에 있는 점수를 얻으며 움직이기 시작한다. 성우는 총 L회 로봇을 움직일 수 있으며, 각 회마다 성우는 로봇이 이동할 방향과 크기를 정해줄 수 있다. 예를 들어, 한 회에 로봇을 서쪽으로 3칸 움직일 수 있다. 이렇게 로봇이 이동하는 동안 방.. 2022. 5. 21.
[알고리즘 문제] 지형 조사 (Python / 파이썬) 문제 등산로를 조성하기 앞서 산의 지형 정보를 통해 오르막 및 내리막 구간 정보를 정리하려고한다. 이때 기록하게되는 오르막 이나 내리막 구간은 길이 K 이상 이면서, 높이가 2이상 차이나야한다. 예를 들어, 1 2 3 은 길이가 3인 오르막 구간이고, 4 5 6 7 8 은 길이가 5인 오르막 구간이다. 앞서 나온 오르막 구간들은 모두 높이가 1씩 차이나므로 기록해야되는 오르막 구간이 아니다. 2 5 8 은 높이차가 1씩 차이나지 않기 때문에 기록 대상인 오르막 구간이다. 주어진 지형의 가로 또는 세로 한 줄을 봤을때, 오르막이나 내리막 구간이 존재하는지 확인해야한다. N * N의 지형 정보가 주어졌을때, 몇 개의 가로 및 세로 줄에 오르막 혹은 내리막 구간이 몇 개 존재하는지 구해보자. 예를 들어, N .. 2022. 5. 21.
[알고리즘 문제] 공기 청정기 (Python / 파이썬) 문제 알고리즘잡스 강의실의 쾌적한 공기 상태를 보장하기 위해 공기청정기를 설치했다. 어느날, 공기청정기가 제대로 동작하는지 궁금해진 영진은 현재 강의실의 공기상태를 알아내는 프로그램을 만들었다. 편의상 강의실 내부는 격자판으로 그려지고, 각 칸에는 공기의 나쁨 정도를 숫자로 표현하도록 제작되었다. 해당 프로그램에서 공기의 확산 특징은 다음과 같다. - 공기는 현재 위치에서 상하좌우로 확산된다. 만약 확산할 좌표가 존재하지 않거나, 공기청정기 위치일 경우 해당 위치로는 퍼지지 않는다. - 공기의 나쁨 정도가 5보다 작을 경우 확산이 일어나지 않는다. - 공기의 확산이 일어났을때, 퍼지는 나쁨 정도는 기준 위치에서 5로 나눈 몫이다. - 확산을 일으킨 후의 기준 위치의 공기의 나쁨 정도는 (현재 공기의 나쁨.. 2022. 5. 21.
[알고리즘 문제] 회전탑 (Python / 파이썬) 문제 N개의 층에 각각 M개의 숫자가 쓰여있다. 회전탑은 층에 존재하는 숫자를 회전시킬 수 있다. 회전 후 인접한 부분의 숫자가 같을 경우 회전판에서 숫자를 지운다. 회전탑의 회전은 시계 방향 혹은 반시계 방향으로 가능하다. 한 번 회전시 회전되는 층은 다수가 될 수 있다. 회전시켜야할 층의 번호와 배수관계에 있는 회전판들은 모두 회전된다. 또한, 회전은 동시에 일어난다. 층을 회전한 뒤 회전한 어떠한 층에서도 지워지는 숫자가 없을 경우, 모든 층에 존재하는 숫자들의 평균을 구해 각각의 숫자와 비교한다.(평균값의 소숫점 아래는 버린다) 만약 평균보다 크면 -1을, 평균보다 작으면 +1을 더해준다. 앞서 말한 처리를 한 다음엔 다시 제거가 일어나는 것이 아닌 다음 회전이 일어난다. 회전탑의 정보와 회전시키.. 2022. 5. 21.