알고리즘 정복하기!/백준 문제풀이 61

백준 1026번 Python / Greedy 문제 링크 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.sort() answer = 0 for i in range(len(A)): max_value = max(B) answer = answer + A[i] * max_value B.remove(max_value) pri.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 10.
백준 5565번 Python / Math 문제 링크 https://www.acmicpc.net/problem/5565 5565번: 영수증 첫째 줄에 10권의 총 가격이 주어진다. 둘째 줄부터 9개 줄에는 가격을 읽을 수 있는 책 9권의 가격이 주어진다. 책의 가격은 10,000이하인 양의 정수이다. www.acmicpc.net 풀이 total = int(input()) books = [] for _ in range(9): books.append(int(input())) print(total - sum(books)) 전체 가격을 total 변수에 저장한 후 나머지 9개의 가격들은 books라는 리스트에 저장했습니다. 그리고 sum() 함수를 사용해 리스트의 모든 값을 더한 후 전체 가격에서 빼고 출력했습니다. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 10.
백준 10870번 Python / Math 문제 링크 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 풀이 n = int(input()) def fibo(num): if num 알고리즘 정복하기!/백준 문제풀이 2022. 2. 10.
백준 1712번 Python / Math 문제 링크 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 풀이 a, b, c = map(int, input().split()) if b >= c: print(-1) else: print(a//(c-b)+1) 가변 비용(B)이 판매 가격(C) 보다 높으면 아무리 많이 팔아도 수익이 생길 수 없다. 그래서 B >=C 일때는 -1을 출력한다. 문제에서의 식을 A + B*n = C*n (A: 고정 비용, B: 가변 비용, C: 판매비용, n: 판매 수)로.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 9.
백준 2292번 Python / Math 문제 링크 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 n = int(input()) cnt = 1 multi_six = 6 answer = 1 while n > cnt: answer += 1 cnt += multi_six multi_six += 6 print(answer) 지나가는 방의 횟수가 1번인 수 = 1 (1개) 2번인 수 = 2, 3, 4, 5, 6, 7 (6개) 3번인 수 = 8, 9, 10, 11, 12, 13, 14, 15, 1.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 9.
백준 1978번 Python / Math 문제 링크 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 풀이 n = int(input()) numbers = list(map(int, input().split())) cnt = 0 for i in numbers: state=0 if i > 1: for j in range(2, i): if i % j == 0: state += 1 if state == 0: cnt+=1 print(cnt) - 조건문을 사용하여 문제를 해결했다. - 주어진 수의 n-1까지 순서대로 나누어 한 번이라도 나머지가 0이면 소수가 아닌 .. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 10872번 Python / Math 문제 링크 https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 n = int(input()) answer=1 for i in range(1,n+1): answer = answer * i print(answer) 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 2908번 Python / Math 문제 링크 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 풀이 num1, num2 = map(int, input().split()) new1 = (num1//100) + (num1%100//10)*10 + (num1 % 10)*100 new2 = (num2//100) + (num2%100//10)*10 + (num2 % 10)*100 print(max(new1, new2)) - 각 자리의 숫자를 구해 100의 자리 수와 1의 자리 수의 위치를 바꾸어 ma.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.