-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path9.txt
44 lines (32 loc) · 2.29 KB
/
9.txt
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
32
33
34
35
36
37
38
39
40
41
42
43
44
문제 해결 능력 보다 마무리하는 능력이 중요한 것 같다.
알고리즘이나 최신 언어를 모르는 거랑 프로그래밍이랑 상관 없을 수 있다.
하지만 알아야 한다. 커뮤니케이션을 위해서라도 알아야 한다.
디자인 패턴도 마찬가지이다.
DP
책 - 생각하는 프로그래밍
카카오2019 매칭점수
(필요한 능력) : 복잡해 보지이지만 규칙만 찾으면
-문자열 파싱 : 실제로 프로그래밍하면 스트링으로 처리하는 경우가 굉장히 많다. 실제로 string을 많이 사용하기 때문이다. word 카운트를 한다든가. 문자를 뒤짚는다든가 하는 경우가 굉장히 많다.
-정렬
-규칙이해
카카오2019 블록게임
직사각형의 넓이
가로, 세로 곱하기로는 효율성에 문제가 있다.
plane sweeping + segment tree(index tree):리프에 데이터가 있는
가로 줄을 그어서 나눈다.(세그멘트트리)
codedoc.tistory.com/421
세로줄을 그어서 직사각형 모서리를 만나면 트리 카운트를 늘린다.
세그먼트 트리가 떨어져있는 직사각형을 하나의 길이로 변환해준는 거라고 생각하면 된다.
(+ 자료 압축까지.. : 인트 범위를 넘어설 수 도 있음)
프로그래밍시 주의사항
-0으로 나누는 등의 예외처리
-키보드로 인풋 받을때, 오버플로우가 나지 않는가(sscanf, unsafe 사용)
-재휘호출에서 스택오버플로우가 발생하는가( 얼마나 재귀 호출되는가) : 이럴 때는 루프문으로 바꾼다. stack은 컴파일러 옵션이다. 1M가 정도 된다. 조절 가능하지만 한계가 있다. 너무 많은 데이터를 생성하지 마라. (ex. a[5000000] : 5M 같은거 사용하면 안된다.)
이럴 때는 vector를 사용해라. stack에서는 vector를 가리키는 것만 생성되고, 데이터는 heap에 생성된다. (heap은 물리적인 메모리만까지 사용가능)
-malloc, new 메모리 할당 후 demalloc, delete 해준다. 메모리 해제 반드시 해야한다. 안하면 메모리가 계속 찬다.
-공간복잡도 추정하는 훈련해야한다. (메모리 제약사항)
- 데이터 크기 체크 int로 감당이 안되는 경우 long long 사용한다.
- 너무 많은 데이터 반복처리
- 시간복작도 추정하는 훈련
-
-