Computer Science/Algorithms

๐Ÿ”ธCoordinate Compression๐Ÿ”ธ

metamong 2023. 1. 24.

intro / implementation

 

๐Ÿ”ธ ๋„“๊ฒŒ ํผ์ ธ ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์ขŒํ‘œ ์••์ถ•. (์œ„ ๊ทธ๋ฆผ์˜ ๊ฒฝ์šฐ -6~5๊นŒ์ง€์˜ ํผ์ ธ ์žˆ๋Š” ์ˆ˜๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ 0 - 1 - 2 - 3 - 4๋กœ ๋‚˜์—ด ๊ฐ€๋Šฅ)

๐Ÿ”ธ ์ฃผ์˜์ : ์ฃผ์–ด์ง„ ์ˆ˜๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์ค‘์š”์น˜ ์•Š๊ณ , ํฌ๊ธฐ ์ˆœ์„œ๋งŒ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•  ๋•Œ ์ขŒํ‘œ ์••์ถ• ์ง„ํ–‰

๐Ÿ”ธ ๊ตฌํ˜„

ex) ๋žœ๋ค ํฌ๊ธฐ ์ˆœ์œผ๋กœ ๋‚˜์—ด๋œ A[1], A[2], A[3], .... A[n]์„ ์ขŒํ‘œ ์••์ถ•

โ‘  A[1], A[2], ... , A[n]๋ฅผ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด B[] ์ƒ์„ฑ

โ‘ก ํ•„์š” ์‹œ ์ค‘๋ณต๋œ ์›์†Œ๋“ค์„ ์ œ๊ฑฐ(์ค‘๋ณต ์นด์šดํŠธ ์ค‘์š”์น˜ ์•Š์„ ๊ฒฝ์šฐ๋งŒ)

โ‘ข ๊ฐ A[i]๋ฅผ B[]์—์„œ ์ด๋ถ„ํƒ์ƒ‰ํ•˜์—ฌ B[]์—์„œ์˜ A[i] index๋ฅผ ๊ณ„์‚ฐ

๐Ÿ”ธ ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, ๋žœ๋คํ•˜๊ฒŒ ๋ฐฐ์น˜๋œ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ์ˆซ์ž๋“ค์„ index์˜ ํฌ๊ธฐ๋งŒ์œผ๋กœ ์ค‘๋ณต ์—†์ด ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜ํ•ด ์••์ถ•ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ๋•Œ hash map์œผ๋กœ ๊ฐ ์‹ค์ œ number(key)์— ๋Œ€์‘ํ•˜๋Š” index(value)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (์ค‘๋ณต ์—†์ด ์••์ถ•์ด๋ฏ€๋กœ number์„ ์ค‘๋ณต ์—†๋Š” key๋กœ ์ €์žฅ)

 

๐Ÿ”ธ ์ขŒํ‘œ ์••์ถ• ์ƒ์„ธ ๊ณผ์ • (๊ทธ๋ฆผ)

โ‘  ์ฃผ์–ด์ง„ A ๋ฐฐ์—ด

 

โ‘ก A๋ฐฐ์—ด์„ ์ •๋ ฌ (O(N)) ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ(O(N))ํ•ด์„œ B ๋ฐฐ์—ด ์ƒ์„ฑ

โ˜… ์ค‘๋ณต ์ œ๊ฑฐ๋ฒ•์€ ๋‚ด ์›์†Œ์™€ ๋‚ด ์•ž์˜ ์›์†Œ์™€ ๋‹ค๋ฅด๋‹ค๋ฉด B ๋ฐฐ์—ด์— ๋„ฃ์œผ๋ฉด ๋จ / ๋˜๋Š” set() ์‚ฌ์šฉ

 

โ‘ข ์ƒ์„ฑํ•œ B ๋ฐฐ์—ด์„ ์ค‘๋ณต์—†์ด ์••์ถ•ํ•ด key๋ฅผ number / value๋ฅผ index๋กœ ์ €์žฅ(hash map ๊ตฌํ˜„ - O(N)) + ๋˜๋Š” binary search๋ฅผ ํ™œ์šฉํ•ด ๊ฐ number์˜ left index ๊ตฌํ•˜๊ธฐ(O(NlogN))

๐Ÿ”ธ ์ด๋ ‡๊ฒŒ ์ขŒํ‘œ ์••์ถ•์„ ํ•ด์ฃผ์–ด ์ˆ˜์˜ ๋ฒ”์œ„๋ฅผ ํ™• ์ค„์—ฌ์ค€๋‹ค๋ฉด, ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์„ฑ๋Šฅ๋ฉด ํ–ฅ์ƒ

 

๐Ÿ”ธ  Fenwick Tree๋‚˜ Segment Tree ํ™œ์šฉ ๊ฐ€๋Šฅ

 

๐Ÿ”ธ ์ขŒํ‘œ ์••์ถ•์€ ์ฃผ์–ด์ง„ ์ˆ˜๋“ค์˜ ํฌ๊ธฐ ์ˆœ์„œ๋งŒ ์ค‘์š”ํ•  ๋•Œ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๊ทธ ์ˆ˜๋“ค์„ index๋กœ ์‚ฌ์šฉํ•  ๋•Œ, ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ค„์ผ ๋•Œ ์‚ฌ์šฉ


IOI Korea

geeks for geeks

 

'Computer Science > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Divide&Conquer(DAC)  (0) 2023.03.20
์ค‘๊ตญ์ธ์˜ ๋‚˜๋จธ์ง€ ์ •๋ฆฌ(CRT;Chinese Remainder Theorem)  (0) 2023.02.26
๐Ÿซ‚ Prefix Sum  (0) 2023.01.18
Regular Expression  (0) 2023.01.11
๐Ÿ›Dynamic Programming๐Ÿ›  (1) 2023.01.03

๋Œ“๊ธ€