Python_알고리즘
-
2090. [Python]조화 평균Python_알고리즘/Silver IV 2023. 5. 14. 22:29
1. 문제 https://www.acmicpc.net/problem/2090 2090번: 조화평균 N개의 수 A[1], …, A[N]의 조화평균은 1/(1/A[1] + 1/A[2] + … + 1/A[N]) 으로 정의된다. 즉, 각각의 수들을 뒤집어서(분모와 분자) 모두 더한 뒤, 그 값을 다시 뒤집는 것이다. 예를 들어 1, 2, 4의 조화평균 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB Math 함수 ( 유클리드 호제법도 가능 ) 3. 파이썬 코드 import math # 리스트의 최소공배수를 구하는 함수 def euclid(nums): lcm = nums[0] check = 1 for i in range(check,len(nums)): lcm = math.l..
-
1758. [Python]알바생 강호Python_알고리즘/Silver IV 2023. 5. 11. 23:16
1. 문제 https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 256MB 정렬 그리디 알고리즘 3. 파이썬 코드 import sys input = sys.stdin.readline # 들어오는 input의 갯수 N = int(input()) # 가격 리스트 생성 pay_list = [] # N만큼 리스트 반복 for _ in range(N): pay_list.append(int(in..
-
1487. [Python]물건 팔기Python_알고리즘/Silver IV 2023. 5. 4. 00:04
1. 문제 https://www.acmicpc.net/problem/1487 1487번: 물건 팔기 첫째 줄에 최대 이익을 만들어주는 가격을 출력한다. 이익이 최대인 가격이 여러개라면, 가장 낮은 가격을 출력한다. 또, 어떤 가격으로 팔아도 이익을 남길 수 없다면 0을 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 브루트포스 3. 파이썬 코드 N = int(input()) # 가격을 저장할 리스트 price_list = [] # 이득을 저장할 리스트 gain_list = [] # 가격을 리스트 형태로 리스트에 저장 for _ in range(N): num = list(map(int,input().split())) price_list.append(num)..
-
1388. [Python]바닥 장식Python_알고리즘/Silver IV 2023. 5. 3. 23:50
1. 문제 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB DFS 3. 파이썬 코드 N,M = map(int,input().split()) # 방문 헀는지 체크하기 위한 리스트 visited = [[False] * M for _ in range(N)] cnt = 0 dx = 1 dy = 1 # 타일의 종류 tile = [input() for _ in range(N)] # 타일의 가로 세로만큼 ..
-
1246. [Python]온라인 판매Python_알고리즘/Silver IV 2023. 4. 30. 23:17
1. 문제 https://www.acmicpc.net/problem/1246 1246번: 온라인 판매 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 그리디 알고리즘 3. 파이썬 코드 N,M = map(int,input().split()) # 가격리스트를 생성 price_list = [] for _ in range(M): price_list.append(int(input())) # 가격리스트 오름차순 정렬 price_list.sort() # 각 가격대별 최대값 저장 answe..
-
4096. [Python]팰린드로미터Python_알고리즘/Silver V 2023. 4. 26. 21:03
1. 문제 https://www.acmicpc.net/problem/4096 4096번: 팰린드로미터 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 현재 승환이의 주행 거리계에 적혀있는 수가 주어진다.이 숫자는 2자리와 9자리 사이(포함)이다. 예를 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 브루트포스 3. 파이썬 코드 while True: num = input() # input 값이 0 이면 반복문 탈출 if num == "0": break else: # 몇번 더했는지 확인하는 변수 cnt = 0 # 초기의 길이를 체크 num_length = len(num) # 1씩 계속 더해나감 while True: # 앞뒤가 같..
-
1769. [Python]3의 배수Python_알고리즘/Silver V 2023. 4. 26. 02:43
1. 문제 https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 3. 파이썬 코드 N = input() # 각 자리수의 합을 구해야 하기때문에 초기값이 10보다 큰지 작은지 판단 if int(N) >= 10: cnt = 0 # 무한루프를 통해서 각 자리 수의 합을 N 으로 갱신 while True: # 변수 선언 total = 0 # 각 자리수를 정수형으로 변화하며 total 에 값을 더해 ..
-
1431. [Python]시리얼 번호Python_알고리즘/Silver III 2023. 4. 23. 00:04
1. 문제 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정렬 3. 파이썬 코드 N = int(input()) word_list = [] for _ in range(N): word_list.append(input()) # 0번 인덱스부터 N-1 까지 반복문을 통한 정렬 for i in range(N-1): for j in range(i+1,N): # 일단 우선 각 길이를 반환해줌..
-
1788. [Python]피보나치 수의 확장Python_알고리즘/Silver III 2023. 4. 19. 01:43
1. 문제 https://www.acmicpc.net/problem/1788 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 다이나믹 프로그래밍 3. 파이썬 코드 def fibonacci(num): # 양수일때 피보나치 리스트 dp = [0, 1] # 음수일 경우 피보나치 리스트 dp_ma = [0, 1, -1] # 음수에서 절대값 구하기 위해서 사용되는 변수 check = 0 # n 값이 1000000을 넘지 않는다 했..