본문 바로가기

알고리즘 (Python)

(259)
[CodeUp] 코드업 기초 100제 6002번 풀이 - 파이썬(python) 6002 : [기초-출력] 출력하기02(설명)(py) 시간 제한 : 1초 메모리 제한 : 128 MB 문제 설명 이번에는 공백( )을 포함한 문장을 출력한다. 다음 문장을 출력해보자. Hello World (대소문자에 주의한다.) 입력 입력 없음 출력 Hello World 를 출력한다. 입력 예시 출력 예시 Hello World 내 풀이 print("Hello World") 모범 답안 print("Hello World") 해설 파이썬의 print() 함수는 따옴표 안의 문자열에서 띄어쓰기를 그대로 출력해줍니다.
[CodeUp] 코드업 기초 100제 6001번 풀이 - 파이썬(python) 6001 : [기초-출력] 출력하기01(설명)(py) 시간 제한 : 1초 메모리 제한 : 128 MB 문제 설명 python 언어에서 가장 기본적인 명령이 출력문이다. print( )를 이용해 다음 단어를 출력하시오. Hello 입력 입력 없음 출력 Hello 입력 예시 출력 예시 Hello 내 풀이 print("Hello") 모범 답안 print("Hello") 해설 파이썬의 print() 함수를 사용하여 Hello라는 문자열을 출력해줍니다.
[그리디 알고리즘] 모험가 길드 - 파이썬(python) 모험가 길드 난이도 : 下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) gongpo = list(map(int, input().split())) gongpo.sort() group, count = 0, 0 for i in gongpo: count = count + 1 if i = i: # 현재 그룹에 포함된 모험가의 수가 현재의 공포도 이상이라면, 그룹 결성 result += 1 # 총 그룹의 수 증가시키기 count = 0 # 현재 그룹에 포함된 모험가의 수 초기화 print(result) # 총 그룹의 수 출력 해설 입력 n과 공포도 리스트 gongpo를 입력받습니다. 그리고 for 반복문으로 gongpo 리스트의 원소들을 하나하나 선택하고..
[다이나믹 프로그래밍 알고리즘] 효율적인 화폐 구성 - 파이썬(python) 효율적인 화폐 구성 난이도 : 中 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m = map(int, input().split()) coins = [] for i in range(n): coins.append(int(input())) dp_table = [10001] * (m + 1) dp_table[0] = 0 for i in range(n): for j in range(coins[i], m+1): if dp_table[j - coins[i]] != 10001: dp_table[j] = min(dp_table[j], dp_table[j - coins[i]] + 1) if dp_table[m] == 10001: print(-1) else: print(dp_table[m..
[다이나믹 프로그래밍 알고리즘] 바닥 공사 - 파이썬(python) 바닥 공사 난이도 : 中下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) dp_table = [0] * 1001 dp_table[1] = 1 dp_table[2] = 3 for i in range(3, n+1): dp_table[i] = (dp_table[i-1] + (dp_table[i-2] * 2)) % 796796 print(dp_table[n]) 예시 # 정수 N을 입력 받기 n = int(input()) # 앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화 d = [0] * 1001 # 다이나믹 프로그래밍(Dynamic Programming) 진행 (보텀업) d[1] = 1 d[2] = 3 for i in range(3, n + 1)..
[다이나믹 프로그래밍 알고리즘] 개미 전사 - 파이썬(python) 개미 전사 난이도 : 中 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) foods = list(map(int, input().split())) dp_table = [0] * 100 dp_table[0] = foods[0] dp_table[1] = max(foods[0], foods[1]) for i in range(2, n): dp_table[i] = max(dp_table[i-1], dp_table[i-2] + foods[i]) print(dp_table[n-1]) 예시 # 정수 N을 입력 받기 n = int(input()) # 모든 식량 정보 입력 받기 array = list(map(int, input().split())) # 앞서 계산된 결..
[다이나믹 프로그래밍 알고리즘] 1로 만들기 - 파이썬(python) 1로 만들기 난이도 : 中下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 x = int(input()) dp_table = [0] * 30001 for i in range(2, x+1): dp_table[i] = dp_table[i-1] + 1 if i % 2 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 2] + 1) if i % 3 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 3] + 1) if i % 5 == 0: dp_table[i] = min(dp_table[i], dp_table[i // 5] + 1) print(dp_table[x]) 예시 # 정수 X를 입력 받기 x = ..
[이진 탐색 알고리즘] 떡볶이 떡 만들기 - 파이썬(python) 떡볶이 떡 만들기 난이도 : 中 풀이 시간 : 40분 시간 제한 : 2초 메모리 제한 : 128 MB 해답 n, m = list(map(int, input().split(' '))) ddeoks = list(map(int, input().split())) start, end = 0, max(ddeoks) result = 0 while start mid: total += i - mid if total < m: end = mid - 1 else: result = mid start = mid + 1 print(result) 예시 # 떡의 개수(N)와 요청한 떡의 길이(M)을 입력 n, m = list(map(int, input().split(' '))) # 각 떡의 개별 높이 정보를 입력 array = lis..
[이진 탐색 알고리즘] 부품 찾기 - 파이썬(python) 부품 찾기 난이도 : 中下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) goods = list(map(int, input().split())) m = int(input()) wants = list(map(int, input().split())) goods.sort() def binary_search(array, target, start, end): while start target: end = mid - 1 elif array[mid] < target: start = mid + 1 return None result = 0 for i in wants: result = binary_search(goods, i, 0, n-1) if result ==..
[정렬 알고리즘] 두 배열의 원소 교체 - 파이썬(python) 두 배열의 원소 교체 난이도 : 下 풀이 시간 : 20분 시간 제한 : 2초 메모리 제한 : 128 MB 해답 n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) for i in range(k): if a[i] < b[i]: a[i], b[i] = b[i], a[i] else: break print(sum(a)) 예시 n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort()..