분류 전체보기

문제 링크 https://www.acmicpc.net/problem/24060 문제 오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자. 크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다. merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p < r) then { q
문제 링크 https://www.acmicpc.net/problem/4673 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111,..
문제 링크 https://www.acmicpc.net/problem/2563 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 풀이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지를 space 리스트로 나타낸다. 리스트 안은 모두 0으로 채운다. 입력받은 검은색 색종이 넓이의 공간을 1로 바꿔준..
문제 링크 https://www.acmicpc.net/problem/4344 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 풀이 score = list(map(int, sys.stdin.readline().split())) student = score[0] del score[0] student는 학생의 수, score는 n명의 점수이다. for s in score: if s > sum(score) / student: cnt += 1 평균이 넘는 학생들의 수를 센다. print(f'{cnt / student * 100:.3f}', '%', sep='') (평균이 넘는 학생들의 수) / (전체 학생 수) * 100을 출력한다. 코드 im..
문제 링크 https://www.acmicpc.net/problem/8958 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 풀이 OX 퀴즈의 결과를 하나의 문자열로 입력받아 반복문을 돌렸다. cnt는 해당 문제의 점수이고, score는 전체 합산 점수이다. O이면 cnt에 +1을 하여 계속 O가 나오면 점수가 1점, 2점, 3점 이런 식으로 점점 오르도록 하였다. 해..
·WEB/error
- 문제상황 multer를 이용하여 파일을 업로드하는 코드를 실행하니 다음과 같은 에러가 떴다. MulterError: Unexpected field at wrappedFileFilter (D:\study\node_modules\multer\index.js:40:19) at Busboy. (D:\study\node_modules\multer\lib\make-middleware.js:115:7) at Busboy.emit (node:events:520:28) at Busboy.emit (D:\study\node_modules\busboy\lib\main.js:38:33) at PartStream. (D:\study\node_modules\busboy\lib\types\multipart.js:213:13) ..
분할 정복(Divide-and-Conquer) 알고리즘이란 주어진 문제의 입력을 분할하여 문제를 해결(정복)하는 방식의 알고리즘이다. 분할한 입력에 대하여 동일한 알고리즘을 적용하여 해를 계산하며, 이들의 해를 취합하여 원래 문제의 해를 얻는다. 분할된 입력에 대한 문제를 부분 문제(subproblem)라고 하고, 부분 문제의 해를 부분해라고 한다. 부분 문제는 더 이상 분할할 수 없을 때까지 계속 분할한다. 분할 횟수: log₂n 일반적으로 부분 문제들의 해를 취합하여 큰 부분 문제의 해를 구한다. 합병 정렬 (Merge Sort) 입력이 2개의 부분 문제로 분할, 부분문제의 크기가 ½로 감소하는 분할 정복 알고리즘이다. - 합병 정렬 알고리즘 MergeSort(A,p,q) 입력: A[p]~A[q] 출..
자료구조란 자료를 효율적으로 사용하기 위해 자료를 조직화한 것이다. 구조 정의, 삽입 동작, 삭제 동작 등을 정의해야 한다. 자료구조의 종류 선형 자료구조 배열(array), 연결 리스트(linked list) 스택(stack), 큐(queue) 비선형 자료구조 트리(tree), 그래프(graph) 순차 자료구조 자료들의 논리적 순서와 물리적 순서가 일치한다. 배열('같은 자료형'을 가진 자료들을 메모리에 연속적으로 저장하는 방식)의 삽입과 삭제를 사용한다. 연결 자료구조 배열이 가지는 메모리 사용의 비효율성을 해결한다. 연결 리스트(다음 자료의 위치를 자료가 가지고 있는 방식, 노드와 링크로 구성)를 사용한다. typedef struct _node { int key; // 정수형 key 필드를 사용하여..
올콩
'분류 전체보기' 카테고리의 글 목록 (6 Page)