일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 따배씨
- Algospot
- 생활코딩
- JavaScript
- C
- 정수론
- C언어
- programmers
- DP
- Python
- 종만북
- String
- web
- 따라하면서 배우는 C언어
- BASIC
- greedy
- server
- 인프런
- sorting
- BFS
- Algorithm
- Cleancode
- udemy
- Math
- 백준
- 따라하며 배우는 C언어
- graph
- dfs
- php
- BOJ
- Today
- Total
목록전체 글 (421)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.15 assert 라이브러리 디버깅 할 때 유용하게 사용 가능 #include int divide(int a, int b); int main() { int a, b; int f = scanf("%d%d", &a, &b); printf("a / b = %d\n", divide(a, b) ); return 0; } int divide(int a, int b) { assert(b != 0); // b == 0 일때, assert 동작 return a / b; } assert 는 Release Mode 에서는 compile 시 포함되지 않음 Debug Mode Runtime 에서 동작 static assert 는 compile time 에서 동..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.14 표준 유틸리티 Utilities 라이브러리 #include #include /* rand(), srand(), malloc(), free(), ... */ void goodbye(void) { printf("GoodBye\n"); } void thankyou(void) { printf("Thankyou\n"); } int main() { printf("Purchased?\n"); if (getchar() == 'y') atexit(thankyou); // 프로그램이 종료 될 때, 런타임에서 실행 시킬 함수를 등록 while (getchar() != '\n') {}; printf("Goobye message?\n"); if (getc..
https://www.algospot.com/judge/problem/read/GRADUATION algospot.com :: GRADUATION 졸업 학기 문제 정보 문제 1학년은 노는 게 남는 거란 선배의 말을 철석같이 믿고, 전공 과목은 다 수강철회하고 교양 과목은 다 F 받는 방탕한 1학년을 보냈던 태우는 이제 와서 자신의 행동을 www.algospot.com 풀이 비트마스크를 사용하여 효율적인 해결이 가능한 DP 문제이다. 어렵다!!!! 1. 각 학기별 수강 가능한 과목 확인 2. 수강 가능한 모든 경우 고려, 각 경우에 대한 memorization 3. 졸업이 가능한 조건 시, 최소학기 확인 모든 경우를 고려하면서 최적화를 위해 각 학기별 수강과목 경우에 따라 수강여부를 기록 해야 한다. 하지..
[종만북] 비트마스크 / 자료구조 / Python 파이썬 비트마스크 정수 의 이진수 표현을 자료 구조로 쓰는 기법 비트마스크는 엄밀하게 말해 자료 구조라고 할수는 없지만, 종종 굉장히 유용하게 사용됨. 비트마스크 장점 더 빠른 수행 시간 비트마스크 연산은 0(1)에 구현되는 것이 많기 때문에, 다른 자료 구조를 사용하는 것보다 훨씬 빨리 동작 연산을 굉장히 여러번 수행 해야 할 경우, 작은 최적화로 큰 속도 향상 더 간절한 코드 다양한 집합 연산들을 반복문 없이 한 줄에 쓸 수 있기 때문에 짧은 코드로 작성 더 작은 메모리 사용량 같은 데이터를 더 적은 메모리를 사용해 표현 많은 데이터를 미리 계산해 두어 있으면 프로그램도 속도 향상 캐시 효율 좋음 연관 배열을 배열로 대체 같은 정보를 객체가 아닌 정수..
[종만북] 모듈라 연산 / 정수론 모듈라 연산 (Modular Arithmetic) 모듈라 M 에 도달 하면, 다시 0으로 돌아가는 정수들로 하는 연산 모듈라 연산에서 모든 정수는 M 으로 나눈 나머지로 표현됨 ex) 시계 모듈라 덧셈 두 수의 합의 모듈라 연산은, 두 수의 모듈라 연산 결과의 합과 같다. (a + b) % M = (a' + b') % M a % M = a' , b % M = b' -> (a + b) % M = ? a = Mx + a' , b = My + b' (a + b) = (Mx + a') + (My + b') = M(x+y) + ( a'+b') (a + b) % M = ( M(x+y) + a' + b') % M = (a' + b') % M -> (a + b) % M = (a' + ..
https://www.algospot.com/judge/problem/read/POTION# algospot.com :: POTION 마법의 약 문제 정보 문제 마법의 약 수업 시간에 교수님의 설명을 안 듣고 졸던 헤리는 실수로 냄비에 몇 가지 재료의 양을 잘못 넣고 말았습니다. 약의 색깔이 심상치 않게 변하는 것을 눈치챈 www.algospot.com [종만북] POTION / solution 효율적인 알고리즘 / Python 파이썬 Solution 효율적인 알고리즘 - r_list 들의 약수를 찾아 해결 1. 모든 재료 중 가장 많이 들어간 재료 찾기 -> X = max( p_list[i] / r_list[i] ), 모든 재료는 X 배 이상 들어야가한다. 2. r_list[i] * X 는 항상 정수 ..
https://www.algospot.com/judge/problem/read/POTION# algospot.com :: POTION 마법의 약 문제 정보 문제 마법의 약 수업 시간에 교수님의 설명을 안 듣고 졸던 헤리는 실수로 냄비에 몇 가지 재료의 양을 잘못 넣고 말았습니다. 약의 색깔이 심상치 않게 변하는 것을 눈치챈 www.algospot.com [종만북] POTION / solution 직관적인 알고리즘 / Python 파이썬 Solution 직관적인 알고리즘 - 비율이 맞을 때까지 재료들을 계속 더 넣어보는 방법 1. 첫번째 재료는 4숟가락을 넣어야 하는데, 7 숟가락을 넣음 -> 다른 재료들도 최소 7/4 배 넣어야 함 2. 두번째 재료는 6 x ( 7/4 ) = 10.5 숟가락 넣어야 하는..
https://www.algospot.com/judge/problem/read/POTION# algospot.com :: POTION 마법의 약 문제 정보 문제 마법의 약 수업 시간에 교수님의 설명을 안 듣고 졸던 헤리는 실수로 냄비에 몇 가지 재료의 양을 잘못 넣고 말았습니다. 약의 색깔이 심상치 않게 변하는 것을 눈치챈 www.algospot.com 풀이 주어진 정수 배열의 최대공약수를 구하여 해결하는 문제이다. 최대공약수를 구하기위해 유클리드 알고리즘 을 활용하였다. c = int(input()) def get_gcd(p, q): if q == 0: return p return get_gcd(q, p % q) def get_r_gcd(r_list): for i in range(1000, 0, -1)..