ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

๊ณ„์ˆ˜ ์ •๋ ฌ

: ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ๊ฐ’์˜ ๋ฒ”์œ„๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ ๋น ๋ฅธ ์†๋„๋ฅผ ๊ฐ–๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

  ์ตœ๋Œ“๊ฐ’๊ณผ ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ์›์†Œ ๊ฐ’ ๊ฐœ์ˆ˜๋ฅผ ๋ˆ„์ ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋ฐฐ์—ด๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

์šฐ์„ , ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ 

nums = [5, 9, 3, 6, 9, 5, 2, 10, 1] ์ด๋ผ๋Š” ๋ฐฐ์—ด์ด ์ž…๋ ฅ๋˜์—ˆ๊ณ , ์ด nums ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž.

 

์นด์šดํŒ… ์ •๋ ฌ์˜ ๋‹จ๊ณ„

0. ์ •๋ ฌํ•  nums ๋ฐฐ์—ด ์ž…๋ ฅ

 

1. count ๋ฐฐ์—ด ์ƒ์„ฑ

- ์ž…๋ ฅ๋œ nums ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ธธ์ด๋กœ ๊ฐ–๋Š” count ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.

- ๊ฐ ์›์†Œ๊ฐ€ nums ๋ฐฐ์—ด์— ๋ช‡ ๋ฒˆ ๋‚˜์˜ค๋Š”์ง€ ํšŸ์ˆ˜๋ฅผ count ๋ฐฐ์—ด์— ๊ธฐ๋กํ•œ๋‹ค.

2. ์ด์ „๊นŒ์ง€์˜ ๋ˆ„์ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ(cumCount ๋ฐฐ์—ด)

- count ๋ฐฐ์—ด์—์„œ ๊ฐ ์›์†Œ๊ฐ€ ๋ช‡ ๊ฐœ์”ฉ ๋‚˜์˜ค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ,

- ์ด๋ฅผ ์ด์šฉํ•ด ์ง€๊ธˆ๊นŒ์ง€ ๋ช‡๊ฐœ์˜ ์›์†Œ๊ฐ€ ์•ž์— ๋‚˜์™”๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ˆ„์ ๊ฐœ์ˆ˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.

3. nums ๋ฐฐ์—ด์—์„œ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ cumCount ๋ฐฐ์—ด์— ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” ๊ฐ’์— ๋”ฐ๋ผ ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ์ •ํ•˜๋ฉด ๋!

 

์‹œ๊ฐ„ ๋ณต์žก๋„

:

๋งŒ์•ฝ ์ตœ๋Œ€๊ฐ’์ด ์ฃผ์–ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ „์ฒด ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n) ์†Œ์š”,

Count ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๋ฉด์„œ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ณผ์ • O(n) ์†Œ์š”,

๋ˆ„์  ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด์„œ ๋ˆ„์  ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ณผ์ • O(n) ์†Œ์š”

๋งˆ์ง€๋ง‰์œผ๋กœ answer์— ๋ฐฐ์—ด์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ๊ณผ์ • O(n) ์†Œ์š”

 

๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)์ด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ, ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ M์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์ •๋ ฌ ์‹œ๊ฐ„์€ M์„ ๋”ฐ๋ผ๊ฐ€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ O(n + M) ์ด๋ผ๊ณ  ๋ณด๋Š” ๊ฒƒ์ด ์ •ํ™•ํ•ด ๋ณด์ธ๋‹ค.

 

๊ณผ์ •์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ตœ๋Œ“๊ฐ’์ด ์ž‘์œผ๋ฉด ์ž‘์„์ˆ˜๋ก ์ •๋ ฌ์— ์œ ๋ฆฌํ•˜๋‹ค.

728x90
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ
250x250