본문 바로가기

분류 전체보기125

[백준/파이썬] 17427 : 약수의 합 2 https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 문제 요약 : 자연수 A의 약수의 합은 f(A)이다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)이다. 자연수 N이 주어졌을 때, g(N)을 구하라. 시도 ) # 약수의 합2 import sys input = sys.stdin.readline ans = 0 for number in range(1,int(input(.. 2023. 3. 27.
[Java] 자바의 컴파일 과정 👶 자바의 탄생 자바는 애초에 일반 컴퓨터에 사용될 목적으로 설계된 것이 아니다. 1991년 선마이크로시스템즈(SUN Microsystems)는 제임스 고슬링(James Gosling)이란 엔지니어를 중심으로 그린 프로젝트(Green project)라는 이름으로 가전 제품의 적합한 소프트웨어 언어를 개발하기 시작했다. 기존의 언어로 작성된 프로그램들은 컴퓨터 플랫폼(platform) 간에 호환성이 없어, 플랫폼에 따라 소스를 다시 컴파일하거나 아예 프로그램을 다시 작성해야하는 단점이 존재했다. 이에 선마이크로시스템즈는 플랫폼 독립적(platform independent)이며 메모리 사용량이 적은 새로운 언어와 실행 체계를 발표했고, 처음에는 이 언어의 이름을 오크(oak)라 지었다. 이 언어는 인터넷과 .. 2023. 3. 27.
[자료구조/Python] 세그먼트 트리(Segment Tree) 세그먼트 트리(Segment Tree) 구간 합, 최소값, 최대값 등의 쿼리를 빠르게 처리하기 위해 사용되는 자료구조 이진 트리(binary tree)를 기반으로 하며, 각 노드는 해당 구간의 합, 최소값, 최대값 등의 값을 저장한다. 1. 구성 기본 배열을 이용하여 세그먼트 트리를 초기화, 배열의 각 요소가 세그먼트 트리의 각 리프 노드에 대응된다. 이진 트리의 성질을 이용하여, 각 노드가 나타내는 구간을 두 개의 서브트리로 나눈다. 각 노드에 대해, 해당 구간의 합, 최소값, 최대값 등의 값을 계산하여 저장한다. 각 쿼리에 대해, 세그먼트 트리를 탐색하여 필요한 값을 계산한다. 리프 노드 : 배열의 그 수 자체 다른 노드 : 왼쪽 자식과 오른쪽 자식의 합을 저장 2. 시간 복잡도 트리의 높이가 log.. 2023. 3. 24.
[알고리즘/Python] 분할 정복(Divide and Conquer) 1. 분할 정복(Divide and Conquer)이란? 큰 문제를 작은 부분 문제로 분할하고, 각각의 작은 부분 문제를 해결하여 전체 문제의 해답을 구하는 알고리즘 문제의 크기가 커서 직접적인 해결이 어려운 경우 유용하다. 대표적인 예로, 정렬 알고리즘인 병합 정렬(Merge Sort)과 퀵 정렬(Quick Sort)이 있다. 2. 동작 방식 문제를 작은 부분 문제들로 분할한다. 분할된 부분 문제들을 각각 재귀적으로 해결한다. 부분 문제들의 해답을 결합하여 전체 문제의 해답을 얻는다. 3. 시간 복잡도 시간 복잡도는 일반적으로 부분 문제의 개수, 분할된 문제의 크기, 분할과정의 복잡도에 따라 결정된다. 대부분의 경우, 분할 정복 알고리즘은 재귀적인 방법으로 문제를 해결하므로, 재귀 호출의 깊이에 따라 .. 2023. 3. 24.
[백준/파이썬] 6549 : 히스토그램에서 가장 큰 직사각형 https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net 문제 요약 : 히스토그램의 개수n과 높이를 나타내는 정수들이 주어졌다. n이 0이 나오기 전까지 히스토그램 내부에 가장 넓이가 큰 직사각형의 크기를 구해라. 히스토그램과 거의 똑같은 문제! 풀이 ) 풀이의 흐름 입력값 read를 받아 histogram함수에 넣어준다. read[0]은 직사각형의 개수 N read[1:]은 각 직사각형의 높이 .. 2023. 3. 24.