[Python] 백준 14503번 문제, 로봇 청소기
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제에서 제공하는 조건에 맞게 구현하면 되는 문제이다. 다만, 2번 조건에는 a, b, c, d가 있는데 a, b 조건이 우선으로 주어졌지만, c와 d를 먼저 체크한 다음에 a와 b로 넘어가는게 맞다고 생각해 코드를 구현할 때 2-c, 2-d를 먼저 수행했다. board[][]: 맵 count: 청소한 칸 수 r, c: 현재 좌표 (r, c) import sys if __name__ == "__..
[Python] 백준 11051번 문제, 이항 계수 2
https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net N과 K를 입력 받아 nCk의 결과를 출력하는 문제이다. nCk는 n! / k!(n-k)!이다. (N과 K의 범위는 문제 참고) 그런데 N!, K!, (N-K)!를 구할 때 중복된 계산이 많기 때문에 비효율적이다. 그렇기 때문에 동적 프로그래밍을 이용한다면 효율적으로 계산할 수 있다. 나는 dp를 만들고 인덱스에 해당 팩토리얼 결과값을 넣었다. 예로 1번째 인덱스, 2번째 인덱스, 그리고 3번째 인덱스 값이 순서대로 1, 2, 6인데 3번째 인덱스 값을 구할 때, 1..