본문 바로가기

분류 전체보기154

[Python] 백준 2591번: 숫자카드 https://www.acmicpc.net/problem/2591 2591번: 숫자카드 1부터 34까지 수가 적힌 카드가 충분히 많이 있다. 이들 중 몇 장을 일렬로 늘어놓고, 그 숫자를 차례로 적었다. 예를 들어 아래와 같이 카드가 놓인 경우 숫자를 차례로 적으면 27123이 된다. 나중 www.acmicpc.net 1. 카드는 1부터 34까지 있으므로 dp[숫자의길이][34]로 만들어준다. 2. 전의수 * 10 + 현재수 2021. 11. 22.
[Python] 백준 2643번: 색종이 올려 놓기 https://www.acmicpc.net/problem/2643 2643번: 색종이 올려 놓기 첫 번째 줄에는 색종이의 장수가 주어진다. 다음 줄부터 각 줄에 색종이의 두 변의 길이가 주어진다. 두 변의 길이는 한 칸 띄어 주어진다. 색종이의 최대 장수는 100이고, 각 변의 길이는 1000보다 www.acmicpc.net 조건 1 : 새로 올려 놓는 색종이는 맨 위의 색종이보다 크지 않아야 한다. 즉, 맨 위의 색종이 밖으로 나가지 않아야 한다. 조건 2 : 새로 올려 놓는 색종이와 맨 위의 색종이의 변들은 서로 평행해야 한다.(색종이를 90˚돌려 놓을 수 있다.) 1. 색종이는 90도 돌릴 수 있으므로 두변중 큰변의 길이를 기준으로 역으로 정렬하면 나머지 한변만 비교하면 된다. 2. dp[i][0].. 2021. 11. 21.
[Python] 백준 12869번: 뮤탈리스크 https://www.acmicpc.net/problem/12869 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net 1. scv는 1~3마리 이므로 3마리보다 작을 때 체력이 0인 scv를 넣어준다. 2. 최대 체력은 60이므로 60인 3차원배열을 만들어준다. 3. 체력이 음수로 내려가나 0이나 같으므로 음수로 내려가면 0으로 설정해주고 9, 3, 1을 순서를 바꾸어 dfs 를 돌려준다. n = int(input()) scv = list(map(int, input().split())) dp = [[[0 for _ in .. 2021. 11. 19.
[Python] 백준 1563번: 개근상 https://www.acmicpc.net/problem/1563 1563번: 개근상 백준중학교에서는 학기가 끝날 무렵에 출결사항을 보고 개근상을 줄 것인지 말 것인지 결정한다. 이 학교는 이상해서 학생들이 학교를 너무 자주 빠지기 때문에, 개근상을 주는 조건이 조금 독 www.acmicpc.net 1. 인덱스, 지각 개수, 연속된 결석 횟수로 배열을 만들었다. 2. 현재를 기준으로 지각 0, 결석 0 이면, i-1의 (지각 0 + 결석 0, 1, 2 + 출석)이 된다.(결석은 연속된 것으로 하므로 출석이 오면 초기화됨) 3. 마찬가지로 지각 1, 결석 0 이면 지각은 연속된 것이아니라 고정이므로, i-1의 (지각 0 + 결석 0, 1, 2 + 지각), (지각 1 + 결석 0, 1, 2, + 출석) 이 .. 2021. 11. 19.