일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- KPConv
- PointNet++
- 코딩테스트
- SLAMKR
- OpenCV 모듈
- ros2
- 입문 Visual SLAM
- 제 6장
- 코딩테스트 공부
- 2 포인터 알고리즘
- Slam
- OpenCV
- 백준 1253번
- PointNet
- 부자 아빠 가난한 아빠
- 경제 공부
- exponential mapping
- TURTLEBOT3
- IMAGE
- logarithm mapping
- visual slam
- Raspberry Pi
- C++
- rigid KPConv
- deformable KPConv
- FeatureMatching
- Docker
- point cloud
- 코딩 테스트
- 논문 리뷰
- Today
- Total
목록코딩 테스트 (2)
꿈꾸는 개발자
시간 제한 : 2초 메모리 제한 : 256MB 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) 출력 좋은 수의 개수를 첫 번째 줄에 출력한다. 문제 해설 두 개의 합 혹은 다른 두 수라는 내용이 문제에서 나올 경우 2 포인터 알고리즘이라고 생각하는 것이 중요! 해당 문제에서 시간 복잡도의 경우 최소 $ O(n\log(n)) $ 이어야 하기 때문에 정..
C++ 기준에서 1억번의 연산 = 약 1초로 볼 수 있다. 코딩 테스트의 핵심 중 하나는 문제마다 주어진 시간 복잡도를 고려해 적절한 알고리즘을 선택하는 것 코딩 테스트에서는 빅-오 표기법($ O(n) $)을 기준으로 수행 시간을 계산하는 것이 좋다. 예를 들어보자. #include #include #include using namespace std; int main() { int findNumber; int N = 1000000; srand(time(NULL)); findNumber = rand() % 1000000; for (int i = 0; i < N; i++) { if (i == findNumber) { cout