알고리즘-python

    [BJ14502] 연구소

    🚩 문제 설명 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net ⏱️ 시간 복잡도 ▪ 연구소의 벽을 세우는 행위 : 브루트포스 (N x N x N) ▪ 바이러스를 퍼트리면 (4 x N x M) ▪ 대충 O(N^5) 정도 ◾ 연구소에 벽을 세워 바이러스를 막고, 총 안전영역의 최댓값을 찾는 문제입니다. ◾ 벽은 총 3개만 세워야한다는 점을 유의하시길 바랍니다. ◾ 시간은 2초 입니다. 1초에 연산을 1억개 정도 하므로, 2억개의 연산 아래서 계산이 되어야 합니..

    [BJ14500] 테트로미노

    🚩 문제 설명 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net ⏱️ 시간 복잡도 ▪ 도형의 총 개수를 K 이라고 하자. ▪ O(KNM) 에 해당한다. ◾ 테트로미노가 놓인 종이의 모든 숫자의 합을 구하고, 그 합의 최댓값을 구하는 문제 ◾ 테트로미노는 정사각형 블록이 4개입니다. ✅ 입출력 변수 설명 n m : n x m (세로/가로) 종이에 쓰여 있는 수 : n 개의 줄 return 테트로미노가 놓인 칸의 모든 합의 최댓 ✔️ 예제 1 5 5..

    [BJ14499] 주사위 굴리기

    🚩 문제 설명 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 ⏱️ 시간 복잡도 ▪명령만큼 돌아야 한다. 명령의 수가 N이라면 O(N) ◾ 맵 위에 주사위를 특정 조건에 맞게 굴리고 주사위의 윗면을 출력하는 문제 ◾ 주사위 전개도를 유의해서 풀자. ✅ 입출력 n m x y k : (세로, 가로, 주사위좌표, 명령의 개수) 숫자 적힌 지도맵 : n 개의 줄 이동하는 명령들 : k ..

    [BJ13458] 시험 감독

    🚩 문제 설명 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net ⏱️ 시간 복잡도 ▪ 각 시험장의 길이만큼 반복문을 돈다. ▪ 따라서 O(N) ◾ 간단한 사칙연산으로 풀 수 있는 문제입니다. ◾ 각 시험장에 필요한 총 감독관의 최소값을 출력하면 됩니다. ✅ 입출력 1. n : 시험장 개수 2. a : 각 시험장에 있는 응시자의 수 3. b c : 총감독관 감시 가능 응시자 수, 부감독관 감..

    [BJ3190] 뱀

    🚩 문제 설명 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net ⏱️ 시간 복잡도 ▪ 적어도 O(N^2) ◾ 벽에 부딪히거나, 자기자신에 닿지않고서 뱀의 이동경로가 끝났을 시 걸린 시간을 구하는 문제 ◾ 벽에 부딪히거나, 자기자신에 닿으면 게임 오버 ◾ 뱀은 매초마다 움직이며, 처음 뱀의 길이는 1입니다. ◾ 사과를 먹으면 뱀의 몸 길이가 1씩 늘어납니다. (사과는 먹으면 없어져야합니다. 이를 주의하시길 바랍니다.) ◾ 뱀은 맨 좌측 상단에서부터 시작됩..

    [BJ12100] 2048 (Easy)

    🚩 문제 설명 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net ⏱️ 시간 복잡도 ▪각 방향으로 움직이면 x 4 ▪각 블록을 돈다면 4N^2 ▪카운팅이 5번 이하이므로 20N^2 = O(N^2) ◾ 최대 5번 움직일 수 있습니다. ◾ 한번 이동할 때, 합쳐진 블록은 다시 합칠 수는 없습니다. ◾ 전체블록을 상/하/좌/우 네 방향으로 움직일 수 있습니다. ◾ 최대 5번 움직여서 만들 수 있는 가장 큰 블록의 값을 구하는..