본문 바로가기

알고리즘60

[Python] 백준 1285번: 동전 뒤집기 1285번: 동전 뒤집기 (acmicpc.net) 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위 www.acmicpc.net 1. 비트마스크로 동전의 가로를 뒤집고 안뒤집은 경우를 모두 확인한다. 2. 세로에서 뒤집힌 동전의 수가 더 적으면 그대로 놔두고 더 많으면 뒤집는다. n = int(input()) coin = [list(input()) for _ in range(n)] ans = n * n + 1 for bit in range(1 2021. 9. 14.
[Python] 백준 1135번: 뉴스 전하기 1135번: 뉴스 전하기 (acmicpc.net) 1135번: 뉴스 전하기 민식이는 회사의 매니저이다. 그리고, 민식이는 회사의 중요한 뉴스를 모든 직원에게 빠르게 전달하려고 한다. 민식이의 회사는 트리 구조이다. 모든 직원은 정확하게 한 명의 직속 상사가 있다 www.acmicpc.net 1. 자식 노드들의 자식이 많을수록 전화를 빨리 걸어야 한다. 2. 자식 노드들의 자식들을 배열에 넣어 자식이 많은순으로 정렬한다. 3. 제일 높은값이 정답이다. n = int(input()) emp = list(map(int, input().split())) node = [[] for _ in range(n)] child_cnt = [0 for _ in range(n)] def go(x): global child_c.. 2021. 9. 14.
[Python] 백준 3687번: 박스 채우기 https://www.acmicpc.net/problem/3687 3687번: 성냥개비 각 테스트 케이스에 대해서 입력으로 주어진 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 가장 큰 수를 출력한다. 두 숫자는 모두 양수이어야 하고, 숫자는 0으로 시작할 수 없다. www.acmicpc.net 1. 각 숫자마다 성냥의 갯수를 세서 배열에 넣어준다 2. 최댓값은 성냥이 적게들수록 자릿수가 높아지기 때문에 1과 7로만 이루어져있다. 3. 최솟값은 dp로 제일 최솟값을 구한다. INF = 999999999999999999999999999999999999999999999999999 dy = [INF for _ in range(101)] dy[2] = 1, dy[3] = 7, dy[4] = 4, dy[.. 2021. 9. 14.
[Python] 백준 1493번: 박스 채우기 https://www.acmicpc.net/problem/1493 1493번: 박스 채우기 세준이는 length × width × height 크기의 박스를 가지고 있다. 그리고 세준이는 이 박스를 큐브를 이용해서 채우려고 한다. 큐브는 정육면체 모양이며, 한 변의 길이는 2의 제곱꼴이다. (1×1×1, 2×2×2, www.acmicpc.net 1. 제일 큰 큐브부터 현재 박스에 몇개까지 들어갈수 있는지 확인한다. 2. 현재 큐브의 갯수와 들어갈수있는 박스의 갯수중 작은값을 박스에 대입한다. 3. 지금까지 들어간 박스의 면적을 센다. 4. 다음연산시 지금까지의 박스의 넓이(before)는 8배가 된다. => 1*1*1, 2*2*2, 3*3*3, ... length, width, height = map(i.. 2021. 9. 14.