https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 대회 문제를 풀어야 하는데 논문 읽기에 눈이 침침해서 하나 풀어봤습니다. (이것도 빨리 해야되는데....) 간단한 위상정렬 문제였습니다. 작업에 걸리는 시간과 선행 작업이 주어졌을 때 전체 작업에 걸리는 최소시간을 구하는 문제입니다. 작업은 동시에 진행이 가능합니다. (문제 예시 : 같은 시간에 3, 4번 작업 수행) 위상 정렬을 이용하여 선행 작업에 대한 차수를 구하고, 차수가 0일 때..
https://www.acmicpc.net/problem/1356 1356번: 유진수 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다작거나 같은 자연수이다. www.acmicpc.net 유진수라는 친구가 있어 그냥 풀어보았습니다. (무지성 문제 선택 ㅎㅎ) 입력받은 수를 연속된 두 부분으로 나누었을 때 그 두 부분의 곱이 같으면 YES 아니면 NO를 출력합니다. 수를 string으로 생각하고 substring의 원소들을 곱해줘서 비교하면 됩니다. 코드는 다음과 같습니다. def mul(s): res = 1 for c in s: res *= int(c) return res n = input() check = False for i in range(1, len(n)): s1 = n[:i] ..
https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 시험이 오늘 끝나서 bob 면접 ppt를 만들고 간단한 문제로 하루를 마무리하였습니다. n개의 주사위 입력이 주어졌을 때, 주사위를 높게 한 줄로 쌓습니다. 이 때 맞닿은 주사위의 면은 같은 수를 가집니다. 이 때 전체 주사위의 긴 한 면의 합이 최대가 되도록 구하면 됩니다. 주사위가 10000개 밖에 없기 때문에 6개의 면 중 옆 면에 해당하는 4개 중 최대값을 고르고 다음 주사위의 6개 숫자 중 맞..
https://www.acmicpc.net/problem/1174 1174번: 줄어드는 숫자 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 숫자라고 한다. 예를 들어, 321와 950은 줄어드는 숫자이고, 322와 958은 아니다. N번째로 작은 줄어 www.acmicpc.net N번째 줄어드는 수를 구하는 문제입니다. 줄어드는 수는 3210 과 같이 내림차순인 수이고 0이 1번째 줄어드는 수 입니다. 문제 접근 방법은 다음과 같습니다. 먼저 1자리 수인 0~9를 리스트에 넣고 0번째 값을 pop 하면서 0 ~ 해당 수의 1의 자리수-1 를 r이라 하면 10 * pop 한 수 + r 을 다시 리스트에 맨 마지막에 넣습니다. 이를 반복하면 9876543210..
https://www.acmicpc.net/problem/2014 2014번: 소수의 곱 첫째 줄에 K(1 ≤ K ≤ 100), N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 K개의 소수가 오름차순으로 주어진다. 같은 소수가 여러 번 주어지는 경우는 없으며, 주어지는 소수는 모두 541보다 작거나 www.acmicpc.net 주어진 소수의 곱으로 만든 수열 중 N번째 수를 구하는 문제입니다. 간단한 문제이지만 아이디어를 생각하는데 꽤 걸렸습니다. (시험 공부하기 싫어서 푼 문제인데 생각보다 너무 오래걸렸다.....) 우선순위 큐를 오름차순 (top이 가장 작은 값)으로 설정 후 다음의 단계를 거치면 됩니다. 1. 큐의 top값을 주어진 수들과 곱한다. 그리고 pop한다. 2. 큐의 크기가 N..