목록알고리즘 (82)
내가 하고싶은 건 다 하는 공간
💡문제 링크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..
💡문제 링크이것이 코딩테스트다 책💡문제 분석 요약첫째 줄에는 수열에 속한 수의 개수 n를 입력한다그 이후로 n개의 줄에 걸쳐 수열에 넣을 수들을 입력한다.수열 속에 있는 수를 내림차순으로 정렬하여 출력한다. 💡알고리즘 설계1. n을 입력받고, n개의 수를 담은 리스트 array를 만든다.2. 내림차순 정렬한다.3. 리스트 array의 원소를 하나씩 출력한다.💡코드n = int(input())array = [int(input()) for _ in range(n)]array.sort(reverse=True)for num in array: print(num, end = " ") 💡 오답 풀이... 💡 다른 풀이# N을 입력받고, N개의 정수를 입력받아 리스트에 저장N = int(input())ar..
💡문제 링크 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net 💡문제 분석 요약 ... 💡알고리즘 설계 중위순회 💡코드 k = int(input()) # 깊이 inorder_traversal_buildings = list(map(int, input().split())) length = len(inorder_traversal_buildings) level_over_buildings = [[] for _ in range(k)] def build_level_over_tree(start, en..
💡문제 링크 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 💡문제 분석 요약 전위 순회: 루트 노드 - 왼쪽 자식 노드 - 오른쪽 자식 노드 방문 중위 순회: 왼쪽 자식 노드 - 루트 노드 - 오른쪽 자식 노드 방문 후위 순회: 왼쪽 자식 노드 - 루트 노드 - 오른쪽 자식 노드 방문 첫째 줄에 이진 트리의 노드 개수가 입력되고, 둘째 줄부터 N개의 줄에 걸쳐 각 노드, 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 자식 노드가 없는 경우 .으로 표시한다. 전위 순회, 중위 순회, 후위 순회한 ..