본문 바로가기

프로그래밍/알고리즘8

[파이썬] 백준 알고리즘 1026 : 보물, python 문제 : 보물 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 문제 풀이 문제를 보면 A[N]과 B[N]의 곱을 통하여 가장 작은 값을 만들면 되는 알고리즘이다. 문제에 힌트가 있다. 즉, A는 재배열이 가능하며, B는 재배열이 안된다. 각각 배열의 최댓값과 최솟값의 곱을 더한 값이 문제에서 원하는 답인 최솟값이다. N = int(inpu.. 2022. 11. 8.
[파이썬] 백준 알고리즘 11047 : 동전 0, python 예시 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 결과 6 문제 풀이 처음 시도한 방법은 주워진 동전의 큰 값부터 차례로 K(모든 동전의 합)과 비교함. 하지만 K의 범위가 1억 이므로 이 방법은 부적합 판단. 잘못된 풀이 N, K = map(int, input().split()) money = [] sumMoneyLi = [] sumMoney = 0 countNum = 0 for i in range(N): money.append(int(input())) print(money) # while 1: # if sumMoney == K: # print(countNum) # break for i in range(len(money)): if money[i] > K: sum.. 2022. 10. 28.
[파이썬] 백준 알고리즘 3052 : 나머지 (Python) * 체크 리스트 시간 즉시 작성 가능 1시간 이내 1시간 이상 하루 이상 이해도 이해 완료 복습 필요 부분 이해 이해 불가 체감 난이도 최상 상 중 하 최하 출처 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 문제 풀이 countlist = [] for i in range(10): countlist.append(int(input()) % 42) print(len(set(countlist))) 파이썬을 활용하면 너무 쉽게 풀린다. 문제를 보면 입력값 A를 42로 나누었을 때, 서로 다른 나머지는 몇 개 있는가 인데.. 2022. 10. 18.
[파이썬] 백준 11399 : ATM (python) * 체크 리스트 시간 즉시 작성 가능 1시간 이내 1시간 이상 하루 이상 이해도 이해 완료 복습 필요 부분 이해 이해 불가 체감 난이도 최상 상 중 하 최하 출처 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 해결 방법 - 정렬 후 합하기 N = int(input()) timeP = list(map(int, input().split())) sumTime = 0 timeP.sort() for i in timeP: sumTime += i*N N -= 1 print(sumTim.. 2022. 10. 8.
[파이썬] 백준 11726 : 2xn 타일링 (python) * 체크 리스트 시간 즉시 작성 가능 1시간 이내 1시간 이상 하루 이상 이해도 이해 완료 복습 필요 부분 이해 이해 불가 체감 난이도 최상 상 중 하 최하 문제 2×n 크기의 직사각형을 1 × 2, 2 ×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 핵심 풀이 다이나믹 프로그래밍(DP)의 풀이의 핵심은 '규칙'을 찾아야 한다. 위 그림을 보면 1x2크기의 직사각형을 2xN 크기의 직사각형에 직접 대입해 보았다. 2X1 2X2 2X3 2X4 2X5 1개 2개 3개 5개 8개 표와 같이 1,2,3,5,8개로 일정한 규칙이 있다. 즉,.. 2022. 10. 6.
[파이썬] 백준 1003 : 피보나치 함수 문제 출처 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net * 체크 리스트 시간 즉시 작성 가능 1시간 이내 1시간 이상 하루 이상 이해도 이해 완료 복습 필요 부분 이해 이해 불가 체감 난이도 최상 상 중 하 최하 문제 1은 2번 출력되고, 0은 1번 출력된다. N이 주어졌을 때, fibonacci(N)을 호출했을 때, 0과 1이 각각 몇 번 출력되는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. N은 40보다 작거나 같은 자연수 또는 0이.. 2022. 10. 4.
반응형