Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 뷰
- 코딩테스트 준비
- 코딩테스트
- 코테 파이썬
- DP
- 항해99
- 안드로이드
- 코딩테스트준비
- til
- vue
- 백준
- Python
- Flutter
- 파이썬 코테
- 코테
- C++
- 티스토리챌린지
- 알고리즘
- 오블완
- ML
- 파이썬
- 라라벨
- 플러터
- Laravel
- c++ 코테
- 99클럽
- 개발자취업
- flutter getx
- react
- 개발자 취업
Archives
- Today
- Total
잡다로그
[C++/코테] 기초 코드 작성 요령 본문
시간복잡도
- 컴퓨터는 1초에 대략 3~5억개의 연산을 처리할 수 있다.
- 변수에 값 대입 (초기화 등), 사칙연산, 반환 등을 1번의 연산으로 침
→ 빅오 표기법으로 시간 복잡도를 표기한다.
공간복잡도
- 공간 복잡도: 입력의 크기와 문제를 해결하는데 필요한 공간의 상관관계
- 메모리 제한이 512MB일 때, 약 1.2억개의 int 변수를 선언할 수 있다. (int형 변수는 4byte)
응용 ex) 크기가 5억(500,000,000)인 배열을 필요로 하는 코드는 메모리 제한을 만족할 수 없는 풀이.
정수 자료형
- char, unsigned char, short (2 byte), int (4 byte) , long long (8 byte) 자료형이 있다.
- 자료형이 1byte(8 bit)라는 의미는, 8개의 0또는 1이 들어가는 칸을 이용해 표현된다.
각 칸은 $-2^7, 2^6, 2^5, .., 2^1, 2^0$ 을 의미한다. - $-2^7$인 이유는 2의 보수 개념 관련있다.
[위의 사진] 같은 데이터를 자료형마다 다른 숫자로 표현한다.
- 대부분 int 자료형을 사용하지만, 범위를 넘어가는 수를 저장해야 하면 반드시 long long을 사용해야 한다.
ex) 80번째 피보나치 수
Integer Overflow

- 자료형의 범위를 벗어나 연산 결과에 오류가 발생하는 현상
- 변수를 형변환하여 자료형을 바꿈으로 해결할 수 있다.
- [해결] ex) unsigned long long 범위를 넘어서는 수를 저장해야 한다면, string을 활용해서 저장한다.
실수 자료형
- float (4 byte=32bit(칸))형과 double(8 byte)형이 있다.
- ex) 3.75 를 2진수로 표현하려면 $3.75= 2+1+0.5+0.25 = 2^1+2^0+2^-1+2^-2 = 11.11_2$ 즉 11.11이 된다.
- sign(부호), exponent(지수), fraction(유효숫자) 으로 나뉜다. (IEEE-754 format)

https://velog.io/@joon10266/C-2.3-%EB%B6%80%EB%8F%99%EC%86%8C%EC%88%98%EC%A0%90
실수의 성질
- 실수의 저장/연산 과정에서 반드시 오차가 발생할 수 있다.
상대 오차의 허용 범위가 자료형마다 다르다. float가 메모리를 적게 사용하지만, 실수 자료형은 꼭 double 자료형을 사용한다. - double에 long long 범위의 정수를 함부로 담으면 안된다.
double의 유효숫자는 15자리이고, long long의 유효숫자는 18자리이기 때문에. - 실수를 비교할 때는 등호를 사용하면 안된다.
https://youtu.be/LcOIobH7ues?si=EVxhX2mZhIUjO4FW
https://youtu.be/9MMKsrvRiw4?si=O9d2z459MTxcq3rL
'Algorithm' 카테고리의 다른 글
| [C++/코테] 배열과 Vector (0) | 2023.11.07 |
|---|---|
| [C++/코테] 기초 코드 작성 요령 (2) (0) | 2023.11.06 |
| [Python/코테] 다이나믹 프로그래밍(3) - 예제: 효율적인 화폐 구성 (0) | 2023.09.28 |
| [Python/코테] 다이나믹 프로그래밍(2) - 예제: 개미 전사, 1로 만들기 (0) | 2023.07.14 |
| [Python/코테] 다이나믹 프로그래밍(1) - 개념, 피보나치 수열 구현, 메모이제이션 (0) | 2023.07.14 |
Comments