본문 바로가기

728x90

분류 전체보기

[백준알고리즘] 1712번: 손익분기점 -Python, C++ [백준알고리즘] 1712번: 손익분기점 -Python https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 www.acmicpc.net 통과율이 낮길래 한 번 풀어봤는데 간단하게 풀렸다. 아마 처음 하시는 분들이 직접 .. 더보기
[백준알고리즘] 2143번: 두 배열의 합 -Python [백준알고리즘] 2143번: 두 배열의 합 -Python https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1≤m≤1,000)이 주어지고, 그 다음 줄에 m개의 정수로 B[1], …, B[m]이 주어진다. 각각의 배열 원소는 절댓값이 1,000,000을 넘지 않는 정수이다. www.acmicpc.net 이제 이런 문제는 간단한 것 같다... 나중에 또 시간이 지나서 풀려하면 어렵겠지만.. 문제에서 요구하는 것은 두 개의 배열 A, B에서.. 더보기
[백준알고리즘] 2632번: 피자판매 -Python [백준알고리즘] 2632번: 피자판매 -Python https://www.acmicpc.net/problem/2632 2632번: 피자판매 첫 번째 줄에는 손님이 구매하고자 하는 피자크기를 나타내는 2,000,000 이하의 자연수가 주어진다. 두 번째 줄에는 A, B 피자의 피자조각의 개수를 나타내 는 정수 m, n 이 차례로 주어진다 ( 3≤m, n≤1000). 세 번째 줄부터 차례로 m 개의 줄에는 피자 A의 미리 잘라진 피자조각의 크기를 나타내는 정수가 주어진다. 그 다음 n 개의 줄에는 차례로 피자B의 미리 잘라진 피자조각의 크기를 나타내는 정수가 주어진다. 각 종류의 피자조각의 크기 www.acmicpc.net 두 가지 방법으로 문제를 풀었다. 첫 번째 방법은 기존에 이런 유형의 문제를 풀기 위.. 더보기
[백준알고리즘] 7453번: 합이 0인 네 정수 -Python [백준알고리즘] 7453번: 합이 0인 네 정수 -Python https://www.acmicpc.net/problem/7453 7453번: 합이 0인 네 정수 문제 정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다. A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다. 출력 합이 0이 되는 쌍의 개수를 출력한다. 예제 입력 1 복 www.acmicpc.net 이번 문제를 풀기 전에 1208번 부분수열의 합 2를 먼저 풀어.. 더보기
[백준알고리즘] 1208번: 부분수열의 합 2 -Python [백준알고리즘] 1208번: 부분수열의 합 2 -Python 1208번: 부분수열의 합 2 (acmicpc.net) 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 기존의 풀었던 1182번 부분수열의 합과 요구하는 것은 같다. 아래는 기존에 풀었던 코드다. 물론 이번 문제에서는 절대 통과되지 않는다. import sys from itertools import combinations n, s = map(int, sys.stdin.readline().split()) arr .. 더보기
[백준알고리즘] 1261번: 알고스팟 -Python [백준알고리즘] 1261번: 알고스팟 -Python https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미한다. (1, 1)과 (N, M)은 항상 뚫려있다. www.acmicpc.net 굉장히 난감했던 문제인데 다른 분들의 코드도 보니 별거 아니었다. 우선은 처음에는 그냥 DFS(백트래킹) 혹은 BFS 방식으로 문제를 풀려고 했다. 하지만 문제의 경우 이미 방문했던 좌표라고 할지라도 어디로부터 방문했는지에 따라서 해당 좌표까지 이동하면서 벽을 부순 횟수가 달.. 더보기
[백준알고리즘] 1644번: 소수의 연속합 -Python [백준알고리즘] 1644번: 소수의 연속합 -Python https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 www.acmicpc.net 연속합 형태의 문제와 똑같이 풀어주나 소수를 구하는 과정이 추가된다. 다른 .. 더보기
[백준알고리즘] 1806번: 부분합 -Python [백준알고리즘] 1806번: 부분합 -Python https://www.acmicpc.net/problem/1806 1806번: 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길 www.acmicpc.net 이번 문제는 저번에 풀었던 2003번 수들의 합 문제와 유사했다. 다만, 여기서는 주어진.. 더보기

728x90