본문 바로가기
728x90

시물레이션18

[python] 백준 17140 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해결 R연산 C연산 모두 같은 방식이다. 그래서 함수를 하나만 만들고자 한다. cal_R C연산을 사용해야할 때 (열의 개수가 행의 개수보다 많을 때)는 transform을 통해 행과 열을 바꾼다음 cal_R을 한 다음 다시 transform을 한다. 연산 방식은 행마다 원소와 원소의 개수를 묶은 다음 원소의 개수가 작은 것, 원소의 크기 순으로 오름차순으로 나열 한다. (단 0.. 2023. 6. 3.
[python] 백준 3954 Brainf**k 인터프리터 https://www.acmicpc.net/problem/3954 3954번: Brainf**k 인터프리터 각 테스트 케이스에 대해서, 프로그램이 종료된다면 "Terminates"를, 무한 루프에 빠지게 된다면 "Loops"를 출력한다. 무한 루프에 빠졌을 때는, 프로그램의 어느 부분이 무한 루프인지를 출력한다. ([ www.acmicpc.net 문제 해결 문제를 이해하는데 상당한 시간이 소요 되었다. 간단히 요약하면 '[' 과 ']'로 인해 무한루프를 도는가 문제이다. 각 조건들에 대한 이해와 구현 문제 먼저 루프를 찾고 그래프로 연결을 한다. 각 프로그램 문자를 보고 조건에 맞게 데이터 배열을 변형시킨다. 일정 횟수 이상 지났을 때 무한루프를 못 빠져 나오면 가장 안에 있는'LOOP, '[' 지점, .. 2023. 5. 28.
[python] 백준 14891 톱니바퀴 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 문제 해결 특정한 하나의 톱니바퀴를 돌릴 때 다른 톱니바퀴가 돌아가는지 안돌아가는지 조건에 맞춰서 확인한다. 결국 중요한 것은 12시 방향의 값이 N극인지 S극인지이다. 돌아갈때 한번에 모두 돌아가는 것이므로 조건에 맞춰서 이웃하는 바퀴가 반대방향으로 돌아가는지 안돌아가는지 확인한다음 안들아가면 다음 톱니바쿼는 볼 필요가 없고 돌아가면 다음 톱니바퀴를 쭉 확인한다. 단순 구현 문제이다. COD.. 2023. 5. 22.
[python] 백준 14499 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 문제 해결 주사위와 지도에 대해서 이해하기 어려웠다. 주사위를 굴린다는것은 오른쪽, 왼쪽, 위쪽, 아래쪽으로 한 칸 굴린다는 것을 이해하면 문제가 쉬워진다. 시물레이션 문제이다. 한번 굴릴 때 어떻게 지도에서 움직이는지 이해하고 그래서 주사위를 어떻게 굴렸는지 알고 숫자를 변경시키고 주사위 위쪽 숫자를 출력하면 해결된다. CODE .. 2023. 5. 18.
728x90