728x90 알고리즘316 [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] 백준 16236 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 해결 전형적인 이동문제이기 때문에 bfs 또는 dfs를 써야한다는 느낌이 든다. 먹이감이 가장 가까이, 왼쪽에 있는 순으로 우선순위가 있으므로 우선순위에 맞게 먹이를 잡으러간다. 거리를 기록해야하기 때문에 visited 에 최단 이동 거리를 기록한다. 일정 수준 이상 먹으면 크기가 커지는 것을 고려한다. CODE # 16236 아기상어 from collections import deq.. 2023. 5. 29. [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. 이전 1 ··· 25 26 27 28 29 30 31 ··· 79 다음 728x90