devbelly   3년 전

블로그에서 코드를 보다가 이해가 가지 않는 부분 및 확인받고싶은 부분이 있어서 질문드립니다.

[코드 출처]

https://plzrun.tistory.com/entry/Suffix-Array-ONlogNlgN%EA%B3%BC-ONlogN-%EA%B5%AC%ED%98%84-%EB%B0%8F-%EC%84%A4%EB%AA%85

**사전지식**

vector<int> g : g[i] 는 원래의 문자열 i 인덱스의 순위를 나타냅니다.

vector<int> ng : 다음 g를 갱신하기 위한 ng

vector<int> cnt : 기수정렬용 cnt

**질문 목록**

1. 10번째줄 lim은 기수정렬때 cnt 배열의 크기를 사용하기 위함으로 이해했습니다.

257의 의미는 모든 char형을 담겠다는 표현같은데 왜 n+1이랑 max를 취하나요? 

2 . orderToidx 배열은 기수정렬을 1차적으로 한 idx를 나타내는데, 배열의 크기를 n+1까지 해야하나요? n까지면 오류가 발생하나요?

3. 30번째줄 ng[sfx[0]]=1 에서 1은 g[n]. 즉 빈 문자열을 최우선순위(0)로 두기위해서 1로 적은것이 맞나요?

댓글을 작성하려면 로그인해야 합니다.