분류 전체보기
-
10610. [Python]30Python_알고리즘/Silver IV 2023. 1. 31. 23:52
1. 문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 문자열 정렬 조건 3. 파이썬 코드 N = input() # 숫자를 담을 리스트 생성 num_list = [] # 30으로 나눠야기 때문에 3의 배수인지 확인하는 변수 생성 total = 0 # 정답 출력할 문자 변수 선언 ans = "" # 30의 배수이므로 30보다 작으면 -1 출력 if int(N) < 30: print(-1..
-
1789. [Python]수들의 합Python_알고리즘/Silver IV 2023. 1. 30. 22:24
1. 문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 수의 합 구하는 방법 3. 파이썬 코드 S = int(input()) s = S*2 n = int(1) # 무한 반복문으로 제일 높은 n의 값을 찾음 while True: # S*2 < n*(n+1) 한 이유는 1~N 까지 합을구하는 식이 n*(n+1)//2 이기 때문이다. # s 값이 딱나누어 떨어지지 않는 경우 그 값을 딱 초과했을 때 break를 걸어준다. # break 됐을때 count -1 해주는 이유는 값이 한개 더 더해졌기 때문에 빼..
-
11047. [Python]동전 0Python_알고리즘/Silver IV 2023. 1. 30. 21:15
1. 문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 탐욕 알고리즘(Greedy Algorithm) 3. 파이썬 코드 N,K = map(int,input().split()) # 돈 담을 리스트 생성 money = [] for _ in range(N): money.append(int(input())) cnt = 0 # ..
-
2217. [Python]로프Python_알고리즘/Silver IV 2023. 1. 29. 13:47
1. 문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 192MB 리스트 정렬, 탐색 3. 파이썬 코드 N = int(input()) # 로프 리스트 생성 lope_list = [] for _ in range(N): lope_list.append(int(input())) # 로프 리스트를 큰순으로 정렬함 내림차순(큰거=>작은거) lope_list.sort(reverse=True) # ..
-
11399. [Python]ATMPython_알고리즘/Silver IV 2023. 1. 26. 11:01
1. 문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 낮은 수 정렬 3. 파이썬 코드 N = int(input()) # 결과값 출력할 변수 선언 total_min = 0 num_list = list(map(int,input().split())) # 리스트 정렬 num_list.sort() # 중간값 변수 설정 check = 0 for i in num_list: check += i total_min += chec..
-
1459. [Python]걷기Python_알고리즘/Silver IV 2023. 1. 25. 23:40
1. 문제 https://www.acmicpc.net/problem/1459 1459번: 걷기 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 ( www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 경우의 수 생각 3. 파이썬 코드 X,Y,W,S = map(int,input().split()) # 직선으로 이동한 거리 s1 = (X+Y)*W # 대각선으로만 이동한 거리 X,Y의 합이 2의 배수가 아닌경우 홀수로 한칸이 남기때문에 조건을 다르게 해줘야한다. if (X+Y) % 2 == 0: s2 = max(X,Y)*S el..
-
1712. [Python]손익분기점Python_알고리즘/Bronze II 2023. 1. 23. 23:10
1. 문제 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 2. 접근 방법 시간 제한: 0.35초 메모리 제한: 128MB 규칙 찾기 3. 파이썬 코드 A,B,C = map(int,input().split()) # 결과를 출력하기 위해서는 C-B를 빼줘야 하는데 B가 C보다 큰 경우 이득이 생길 수 없고 같으면 0 이나오기 때문에 0으로 값을 나눌 수 없어서 >= 사용 if B >= C: print(-1) else: # 이득이 나는 구조는 결국 C와..
-
2839. [Python]설탕 배달Python_알고리즘/Silver IV 2023. 1. 23. 22:53
1. 문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현(약간의 탐욕 알고리즘) 3. 파이썬 코드 N = int(input()) # 시간 복잡도를 줄이기 위해 5의 배수일 경우 바로 출력 if N%5 == 0: print(N//5) # 5이하일 경우 3인 경우 바로 1 출력 외에는 -1 출력 되게 시간복잡도 절약 elif N < 5: if N == 3: print(N//3) else: pr..
-
탐욕 알고리즘(Greedy Algorithm)알고리즘 2023. 1. 23. 21:48
1. 탐욕 알고리즘(Greedy Algorithm) 이란? 선택의 순간에서 눈앞의 최적의 선택만을 따라가 최종적으로 답을 도출해내는 방법. 알고리즘을 푸는데에 있어서 최소한의 아이디어를 떠올릴 수 있는지를 물어보는 문제유형 Greedy Algorithm은 매 순간마다 그 상황에서 최적의 값이라고 생각하는 것을 따라가지만 전체적으로 봤을 경우 그 값이 최적의 값이라고 할 수 없다. 2. 탐욕 알고리즘(Greedy Algorithm)의 문제 해결 방식 선택 절차 : 현재 상태에서 최적의 값을 선택 적절성 검사 : 선택한 값이 문제의 조건과 일치하는지 비교 해답 검사 : 문제가 해결되었는지 판단 후 해결되지 않았을 경우 위의 과정을 반복 Greedy Algorithm은 항상 최적의 값을 찾아내는 것이 아니다...
-
2775. [Python]부녀회장이 될테야Python_알고리즘/Bronze I 2023. 1. 22. 23:21
1. 문제 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 2차원 배열을 생성하여 접근 3. 파이썬 코드 T = int(input()) # 0층은 존재하지 않으므로 1~14호 까지는 직접 넣어주고 나머지 1층부터 14층까지는 0으로 이차원 배열을 생성해준다. apt = [[1,2,3,4,5,6,7,8,9,10,11,12,13,14]] + [[0]*14 for _ in range(14)] # 1층부터 15층까지 배열을 반복 fo..