반응형

C 4

[백준] 11866 요세푸스 문제 0 C

1. 문제N명의 사람이 원을 이루면서 앉아있고, 순서대로 K번째 사람을 제거한다원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다 (N, K)-요세푸스 순열을 구하는 프로그램 작성하기 2. 제한시간 제한 2초, 메모리 제한 512MB1  3. 알고리즘 분류* 구현* 자료 구조* 큐 4. 접근 방식 원을 이루는 형태라고 해서 처음에는 원형큐를 이용해서 접근해 보려고 했었는데생각처럼 구현이 쉽지 않아서 결국 포인터 배열을 이용해서 풀었다 다음에 풀 때는 원형큐나 Linked List, 아니면 파이썬으로 덱을 이용해서 풀어봐야지  그리고 제거할 사람을 구하는 인덱스를 계산하는 방식을 찾는데 애를 좀 먹었다 5. 전체 코드// https://www.acmicpc.net/problem/11866..

알고리즘 2024.10.23

[TIL] 유클리드 호제법 Euclidean algorithm

유클리드 호제법 Euclidean algorithm2개의 자연수의 최대공약수를 구하는 알고리즘 호제법 - 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘  유클리드 호제법 진행 순서1. 두 수 중 큰 수를 작은 수로 나눈다2. 나머지가 0이면 작은 수가 최대 공약수가 된다3. 나머지가 0이 아니면 작은 수가 큰 수가 되고, 나머지가 작은 수가 되어    다시 큰 수를 작은 수로 나눈다  유클리드 호제법 특징1. 시간 복잡도 O(log(min(a, b))) - 두 수의 크기에 비례하여 알고리즘의 수행 시간이 결정된다 2. 재귀적으로 구현도 가능하다 ( gcd(a, b) -> gcd(b, a % b) )+ 최대공약수 성질 중에 gcd(a, 0) = a 라는 성질도 있다, 즉, 어떤 수와..

TIL 2024.10.06

[TIL] 부동소수점 Floating Point C언어

부동소수점 Floating Point 소수점의 위치가 고정되어 있지 않고 데이터의 크기나 정밀도에 따라 소수점이 자유롭게 이동할 수 있는 숫자 표현 방식  value = sign × mantissa × base^exponent sign: 숫자의 부호(양수 또는 음수) mantissa: 수의 유효 숫자 base: 일반적으로 2(이진수) 또는 10(십진수) exponent: 소수점의 위치를 결정하는 지수 + 지수에 들어가는 값의 범위 float 1~254/ double 1~2046 부동소수점 특징 * 모든 숫자를 1.xxx 형식으로 나타낸다 * 첫번째 비트는 양수, 음수를 구분하는데 사용한다  소수의 10진법 - 2진법 진법 변환IEEE 754 방식으로 소수 저장하기 1) 부호 비트 (1 bit) 0 이상이..

TIL 2024.10.05

[TIL] qsort 정렬 C언어

qsortC언어에서 제공하는 정렬 라이브러리 함수 헤더 파일  qsort 함수 원형void qsort(void *base, size_t num, size_t width, int (__cdecl *compare )(const void *, const void *));// base 정렬할 배열의 첫번째 요소를 가리키는 포인터 // num 배열의 요소 개수// width 배열 요소 하나의 크기 (바이트 단위)// (*compar) 두 값을 비교하는 함수 포인터 // 반환값 void, 즉 반환값 없음qsort(정렬할 배열의 주소, 요소의 개수, 요소 하나의 크기, 비교 함수);// 예시qsort(n, 10, sizeof(int), compare);qsort 비교 함수 예시int compare(const int*..

TIL/C언어 2024.10.05
반응형