일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- table not found
- 달인막창
- JanusWebRTCServer
- PersistenceContext
- 코루틴 빌더
- PytestPluginManager
- mp4fpsmod
- JanusGateway
- Spring Batch
- tolerated
- vfr video
- JanusWebRTCGateway
- python
- 개성국밥
- preemption #
- 오블완
- Value too long for column
- terminal
- taint
- JanusWebRTC
- kotlin
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- pytest
- 겨울 부산
- VARCHAR (1)
- 깡돼후
- 티스토리챌린지
- 자원부족
- 코루틴 컨텍스트
- k8s #kubernetes #쿠버네티스
너와 나의 스토리
(BOJ) 1849 순열 / 1777 순열복원 본문
<1849 순열>
문제: https://www.acmicpc.net/problem/1849
푸는 방법:
예제) A[1]=5, A[2]=0, A[3]=1, .......
-> 1은 왼쪽에서부터 5번째에 넣고, 2번은 왼쪽에서부터 0번째에 값을 넣는다
(왼쪽에서 오른쪽으로 가면서 자리를 찾아갈 때 이미 차있는 곳은 넘어간다)
자리 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
번호 |
2 |
7 |
3 |
5 |
4 |
1 |
8 |
6 |
result[6]=1 -> result[1]= 2 -> result[3]=3 -> result[3]=4 -> .....
어느 위치에 숫자가 존재하여 그만큼 넘어가야할지를 세그로 찾음
숫자가 들어간 위치에는 update() 함수를 통해 0을 넣는다. (원래는 각 자리에 1 들어있음)
소스코드:
https://gist.github.com/hovy1994/7d9134b9a9122e553c39d28d5a7e5b01#file-1849
<1777 순열복원>
문제: https://www.acmicpc.net/problem/1777
푸는 방법:
위 문제와 거의 같다.
위와 반대로
예제) A[8]=0, A[7]=2, A[6]=1, .... 순으로 보면서
오른쪽에서 왼쪽으로 숫자를 채워 넣는다
result[8]=8 -> result[5]= 7 -> result[6]=6 -> result[3]=5 -> .....
소스코드:
https://gist.github.com/hovy1994/7d9134b9a9122e553c39d28d5a7e5b01#file-1777
-> 벡터로 푼 사람들이 많길래 풀어봤더니
시간이 776ms가 걸렸다... (위에 세그로 풀면 52ms)
'Algorithm > 세그먼트 트리 (Segment Tree)' 카테고리의 다른 글
[BOJ] 12837 가계부 (Hard) (0) | 2019.09.11 |
---|---|
[BOJ] 1321 군인 (0) | 2019.09.10 |
[BOJ] 2357 최솟값과 최댓값 (0) | 2019.09.10 |
(BOJ) 5676 음주 코딩 (0) | 2019.01.19 |
(BOJ) 3653 영화 수집 (0) | 2019.01.19 |