전체 글

Hello World
    반응형
기록/크래프톤 정글

TIL - 이진탐색/ 이분탐색 구현

문제- 정렬된 배열에서 특정 값을 찾는 이분 탐색 알고리즘을 구현합니다.- 배열을 반으로 나누어 탐색 범위를 절반씩 줄여갑니다. 문제풀이이진탐색은 정렬된 배열에서 가운데 값을 찾고, 탐색값과의 비교를 통해 이동하며 가운데 값을 찾는 탐색 방법이다. def binary_search(arr, target): while left arr[mid]: left = mid + 1 if target 어려웠던 점크게 없었다.

CS/컴퓨터 시스템

컴퓨터 시스템 Ch 1

1.1 정보는 비트와 컨텍스트로 이루어진다.개발자가 작성한 소스 프로그램은 텍스트 파일의 아스키 문자로 변환되고, 아스키 문자는 비트값이므로 비트로 저장이 된다. 같은 비트열도 컨텍스트에 따라 다른 의미로 구분된다.컨텍스트 : 해석 방식기계어는 가변 길이라서 바이트 스트림 자체에 경계 표시가 없다.그래서 어디서 시작하는지 아는것이 중요한데, 프로그램 카운터가 그 역할을 한다.이것을 이해하는게 중요한 이유는 스택 오버플로우/ 버퍼 오버플로우 같은 보안 취약점이 실행 흐름을 강제로 다른 곳으로 이동시키는 방식으로 작동하기 때문이다. 1.2 프로그램은 다른 프로그램에 의해 다른 형태로 번역된다.개발자가 작성한 고급 C 프로그램은 시스템에서 실행시키려면, 다른 프로그램들에 의해 저급 기계어 인스트럭션들로 번..

기록/크래프톤 정글

TIL - 최대공약수(GCD) 와 최소공배수(LCM), 확장 유클리드 호제법

문제두 정수의 최대공약수와 최소공배수를 구합니다. 유클리드 호제법을 사용하여 GCD 를 효율적으로 계산합니다. 문제풀이유클리드 호제법유클리드 호제법은 한번 정리하긴 했었는데, 원리는 모르고 있던 터라 다시한번 정리해봤다. [Java] 백준1934 최대공약수와 최소공배수 구하기 : 유클리드 호제법유클리드 호제법, 최대공약수 구하기두 개의 자연수 또는 정수의 최대공약수 (GCD : Greatest Common Divisor) 을 구하는 가장 빠르고 효율적인 알고리즘이다. 호제법은 '서로 나누는 방법' 이라는 뜻이skylarcoding.tistory.com 우선 왜 유클리드 호제법이 최대공약수가 되는지는 타일링을 통해 이해하였다. 두 수 중 작은 값으로 큰 값을 채우고, 남은 값들을 채우고 남은 값들을 채..

기록/크래프톤 정글

TIL - 버블 정렬 Bubble Sort

문제인접한 두 원소를 비교하여 정렬하는 방식이다.가장 큰 원소가 배열 끝으로 버블 처럼 이동한다. 버블 정렬을 쉽게 이해하기 위한 아티팩트를 생성했다. 문제풀이def bubble_sort(arr): for i in range(n-1): # 외부 반복문은 n-1 까지 돈다. for j in range(0, n-i-1): # 외부 반복문 이후의 항목만 진행 if arr[j] > arr[j+1]: arr[j+1], arr[j] = arr[j], arr[j+1] return arr 외부 반복문은 n-1 까지만 돌고, 가장 마지막은 범위에서 제외한다. (어차피 j+1 값이랑 바뀌기 때문)내부 반복문은..

Back End/Python

Python 의 set 연산자 (집합 자료형)

집합 자료형집합 자료형은 다음과 같은 특징을 가지고 있다.중복을 허용하지 않는다.순서가 없다. 집합 자료형은 중복을 허용하지 않는 특징 때문에 데이터의 중복을 제거하는 필터로 종종 사용된다. 파이썬의 Set 이란? 집합 자료형이다. 집합 자료형 만들기s1 = set([1,2,3])print(s1) # {1,2,3}s2 = set("Hello")print(s1) # {'e', 'H', 'l','o'}s3 = {1,2,3}print(s3) # {1,2,3}s = set() # 비어있는 자료형 비어있는 집합 자료형은 s = set() 로 만들 수 있다. s = {} 는 딕셔너리가 된다. 집합 자료형의 활용교집합>>> s1 = set([1, 2, 3, 4, 5, 6])>>> s2 = set([4, 5, 6..

    반응형
Lar
개발지식 저장소