목록분류 전체보기 (221)
우당탕탕 개발일지

💡문제 링크https://www.acmicpc.net/problem/1932 💡문제 분석 요약한 층에 하나의 숫자를 선택선택한 모든 숫자의 합이 최대가 되는 그 최댓값을 출력 💡알고리즘 설계1. n(층수) 입력받기2. 테이블화를 하기 위해 (n+1)*(n+1) 크기의 테이블 만들기 3. 각 층의 숫자들을 테이블에 넣기4. 아랫층의 숫자 중 가장 큰 수를 본인과 합한 수를 본인에게 넣기알고리즘 흐름이 잘 이해가 안 될 때에는 직접 손으로 그려보기!💡코드n = int(input())# 테이블화table = [[0] * (n+1) for _ in range(n+1)]# 테이블 채워넣기for i in range(1, n+1): table[i][1:i+1] = list(map(int, input().sp..

💡문제 링크https://www.acmicpc.net/problem/24416 💡문제 분석 요약피보나치 수열을 재귀함수로 푸는 의사 코드, 동적 계획법으로 푸는 의사 코드가 주어졌다.이를 실제 파이썬 코드로 바꾸고, 연산횟수를 출력하여라. 💡알고리즘 설계1. 재귀함수 코드 짜기2. DP 코드 짜기3. 함수 안에 변수를 넣을 때 global 함수 써주기 ⭐ ⭐ ⭐ 💡코드n = int(input())count_recur, count_dp = 0, 0f = [0] * (n+1)def fib_recur(n): global count_recur if (n==1 or n==2): count_recur += 1 return 1 else: return fib_recur(n-1) + fib..
💡문제 링크https://www.acmicpc.net/problem/25305 💡문제 분석 요약n명의 학생들 중 k명의 학생만 상을 받는다.커트라인을 구하여라. 💡알고리즘 설계1. n명의 학생들의 점수를 scores 리스트에 담기2. 리스트를 내림차순으로 정렬하기(reverse = True)3. 리스트 속 k-1번째 요소 출력하💡코드n, k = map(int, input().split())scores = list(map(int, input().split()))scores.sort(reverse = True)cutline = scores[k-1]print(cutline) 💡 오답 풀이... 💡 다른 풀이print(sorted(scores)[-k])오름차순으로 정렬한 다음에 뒤에서 k번째 요소를 ..
💡문제 링크https://www.acmicpc.net/problem/2750 💡문제 분석 요약첫 째 줄에 정수 N 입력N개의 줄에 걸쳐 정수 입력입력된 정수를 오름차순으로 정렬해서 한 줄에 하나씩 출력 💡알고리즘 설계1. N개의 줄에 걸쳐 입력받은 정수를 하나의 리스트에 담기 위해 리스트 안에 for문 사용2. 오름차순 정렬하기 위해 sort()함수 사용 💡코드n = int(input())numbers = [int(input()) for _ in range(n)]numbers.sort()for i in range(n): print(numbers[i]) 💡 오답 풀이... 💡 다른 풀이버블정렬(선택 정렬)# 선택 정렬 사용numbers = [5, 3, 2, 3, 7, 1]n = len(numb..
💡문제 링크 💡문제 분석 요약배열 A와 배열 B 각각의 원소 개수 n개, 바꿔치기 연산 횟수 k를 입력받는다.두 배열의 원소를 입력받는다.한 번의 연산에서는 배열 A의 원소 하나를 골라서 배열 B와 바꾼다.최대 K번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합의 최댓값은? 💡알고리즘 설계1. 배열 A, B를 입력한다.2. 배열 A, B 내림차순으로 정렬3. 배열 A에서 앞에서부터 (n-k)개는 남겨두고, 수의 크기가 작은 k개의 원소는 배열 B의 가장 큰 숫자 k개와 바꾼다.4. 합을 계산해서 출력한다. 💡코드n, k = map(int, input().split())a = list(map(int, input().split()))b = list(map(int, input()..
💡문제 링크 💡문제 분석 요약첫 번째 줄에 학생의 수 n 입력두 번째 줄부터 n개의 줄에 걸쳐 학생 이름과 학생 점수가 입력된다(예. 홍길동 95)모든 학생의 이름을 성적이 낮은 순서대로 출력 💡알고리즘 설계1. n회에 걸쳐 array라는 리스트에 학생의 이름과 점수를 입력한다. [['이순신', 77], ['홍길동', 96]] 2. key = lambda x: ~~ 함수를 사용하여 각 원소의 첫 번째 인덱스(즉 학생 이름)를 기준으로 정렬한다.3. 정렬된 array의 각 원소의 첫 번째 인덱스(즉 학생 이름)를 순서대로 모두 출력한다. 💡코드n = int(input())array = []for _ in range(n): input_data = input().split() array.append..