๐Ÿ‘จโ€๐Ÿ’ป Seungineer's GitHub Contribution

๐Ÿงญ KAIST JUNGLE/Algorithm

[๋ฐฑ์ค€]30805 - ์‚ฌ์ „ ์ˆœ ์ตœ๋Œ€ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด (#ํŒŒ์ด์ฌ #ํ›„๋ณด ๋ฒ”์œ„๋ฅผ ๋„“๊ฒŒ ํ•˜๋Š” ๊ทธ๋ฆฌ๋””)

seungineer = seungwoo + engineer 2024. 11. 20. 16:49
๋ถ€๋ถ„ ์ˆ˜์—ด ํ›„๋ณด๊ตฐ์˜ '๋ฒ”์œ„'๋ฅผ ์ตœ๋Œ€ํ•œ ๋„“๊ฒŒ ๊ฐ–๋„๋ก ์š•์‹ฌ๋ถ€๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

 

30805๋ฒˆ: ์‚ฌ์ „ ์ˆœ ์ตœ๋Œ€ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด

 

boj.ma

 

๋ฌธ์ œ ์š”์•ฝ

์ˆ˜์—ด A์™€ ์ˆ˜์—ด B๊ฐ€ ๊ณตํ†ต์œผ๋กœ ๊ฐ–๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค ์ค‘ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋‚˜์ค‘์ธ ๊ฒƒ์„ ๊ตฌํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์ „ ์ˆœ์— ๋Œ€ํ•œ ์ •์˜๋Š” ๋ฌธ์ œ์—์„œ ๋‚ด๋ฆฐ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด, ์—ฌ๋Ÿฌ ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค ์ค‘์—์„œ 1๏ธโƒฃ ๊ฐ€์žฅ index๊ฐ€ ๋‚ฎ์€ ์ˆ˜๊ฐ€ ํฐ ๊ฒƒ์ด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋‚˜์ค‘์ด๋‹ค. ๋งŒ์•ฝ ์ด ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด 2๏ธโƒฃ ๊ทธ ๋‹ค์Œ index ๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ํฐ ์ˆ˜๊ฐ€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋‚˜์ค‘์ด๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 3๏ธโƒฃ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด๊ฐ€ ๋” ๊ธด ๊ฒƒ์ด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋‚˜์ค‘์ด๋‹ค.

์š”์•ฝํ•˜๋ฉด ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘์—์„œ ํฐ ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒƒ์ด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋‚˜์ค‘์ด๋‹ค! ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋„ ์ด ๊ด€์ ์—์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํฐ ์ˆ˜๋ถ€ํ„ฐ ์ฐพ์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฐ์ด ์˜จ๋‹ค.

 

์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณธ๋‹ค

๋‘ ์ˆ˜์—ด์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ฐพ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N*M)์ด๋‹ค. N, M <= 100 ๋ฒ”์œ„์ด๋ฏ€๋กœ ๊ฐ€์žฅ ํฐ ์ˆ˜ ํ•˜๋‚˜ ์ฐพ๋Š” ๊ฒƒ์—๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„์—์„œ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ์œ„ ๋ฌธ์ œ ์š”์•ฝ์— ๋”ฐ๋ฅด๋ฉด '์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ' ํฐ ์ˆ˜๋ฅผ ์ฐพ์•„์„œ ๋ถ€๋ถ„์ˆ˜์—ด์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N*M + (N-1)*M + (N-2)*M) + ... + 1*M)์ด๊ณ  ๋Œ€๋žต O(N*N*M)์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. N, M์ด 100์ด๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ ์ถฉ๋ถ„ํžˆ ์—ฐ์‚ฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก '๊ฐ€์žฅ ํฐ ๊ฒƒ ์ฐพ๊ณ , ๋‘ ๋ฒˆ์งธ๋กœ ํฐ ๊ฒƒ ์ฐพ๊ณ , ์„ธ ๋ฒˆ์งธ๋กœ ํฐ ๊ฒƒ ์ฐพ๊ณ , .... ๋ฐ˜๋ณต'์œผ๋กœ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค!

 

ํ•œ ๋ฒˆ ์ˆœํšŒ์— ์ˆ˜์—ด ๊ฐ๊ฐ์˜ 'ํ•œ๊ณ„ index'๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค

๊ฐ€์žฅ ํฐ ๊ฒƒ์„ ์ฐพ๊ณ  ๋‚œ ํ›„์—๋Š” ํ•œ๊ณ„ index๊ฐ€ ์ƒ๊ธด๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

seq_a = [1, 2, 9, 4, 8, 9, 5]
seq_b = [1, 2, 9, 8, 9, 6, 5]
  • ๊ฐ€์žฅ ํฐ ๊ฒƒ์€ '9'๋กœ ์ˆ˜์—ด A์—์„œ๋Š” index 2, 5์— ์œ„์น˜ํ•˜๊ณ ,
  • ์ˆ˜์—ด B์—์„œ๋Š” 2, 4์— ์œ„์น˜ํ•œ๋‹ค.

๋ฌธ์ œ์—์„œ๋Š” ์ˆ˜์—ด A์™€ B์˜ ๋ถ€๋ถ„์ˆ˜์—ด์„ ๊ตฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํฐ ์ˆ˜๋กœ ์„ ํƒ๋œ Index ์ด์ „์˜ ๊ฐ’์€ ๋…ผ์™ธ๊ฐ€ ๋œ๋‹ค. ๊ทธ ์ด์ „์˜ ๊ฐ’์ด ์„ ํƒ๋˜๋ฉด ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์•„๋‹ˆ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋กœ ์ธํ•ด ํ•œ๊ณ„ index๊ฐ€ ์ƒ๊ธด๋‹ค. ๋น„๊ต์  ์•ž์— ์œ„์น˜ํ•œ '9'๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•œ๊ณ„ index๋Š” ์ˆ˜์—ด A์— 2, ์ˆ˜์—ด B์— 2๊ฐ€ ๋˜๊ณ  ๋น„๊ต์  ๋’ค์— ์œ„์น˜ํ•œ '9'๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•œ๊ณ„ index๋Š” ์ˆ˜์—ด A์— 5, ์ˆ˜์—ด B์— 4๊ฐ€ ๋œ๋‹ค. ์–ด๋–ค '9'๋ฅผ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์›์†Œ๋กœ ์„ ํƒํ•ด์•ผํ• ๊นŒ?

 

๊ทธ๋ฆฌ๋””!

์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋‚˜์ค‘์ž„์„ ํŒ๋‹จํ•˜๋Š” ๋ฐ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด๊ฐ€ ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค. ์ฆ‰, ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ฐ€์žฅ ๊ธธ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ›„๋ณด ๊ตฐ์ด ๋งŽ๋„๋ก '9'(= ๊ฐ€์žฅ ํฐ ๊ฒƒ)๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค! ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋‹ค ํ‘ผ ๊ฒƒ์ด๋‚˜ ๋‹ค๋ฆ„ ์—†๋‹ค ๐Ÿ˜†.

๋น„๊ต์  ๋’ค์— ์œ„์น˜ํ•œ '9'๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ถ€๋ถ„ ์ˆ˜์—ด์€ {9, 5}๊ฐ€ ๋œ๋‹ค. ์•ž์— ์œ„์น˜ํ•œ '9'๋ฅผ ์„ ํƒํ•˜๋ฉด {9, 8, 9, 5}๊ฐ€ ๋œ๋‹ค. '5'์™€ '8'์˜ ๋น„๊ต์—์„œ ํ›„์ž๊ฐ€ ๋” ๋‚˜์ค‘์ธ ๋ถ€๋ถ„์ˆ˜์—ด์ด๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฐ€๊ธ‰์  ์•ž์— ์œ„์น˜ํ•œ '๊ฐ€์žฅ ํฐ ์ˆ˜'๋ฅผ ์„ ํƒํ•˜์—ฌ์•ผ ๋” ๋งŽ์€ ๋ถ€๋ถ„ ์ˆ˜์—ด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค!

 

๊ฐœ์ธ์ ์œผ๋กœ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„

๋งž.์™œ.ํ‹€....

๊ทธ๋ฆฌ๋””์ž„์„ ๋ฐ˜๊ฒฌํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค..! ์ด๋กœ ์ธํ•ด ํ•œ ๋ฒˆ ์ˆœํšŒ์— ํ•œ ๊ฐœ์˜ ํ•œ๊ณ„ index๊ฐ€ ํ•˜๋‚˜ ๊ฒฐ์ •๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋’ค๋Šฆ๊ฒŒ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ํ•œ ๋ฒˆ ์ˆœํšŒ์— ํ•œ ๊ฐœ์˜ ํ•œ๊ณ„ index๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ ํ›„์— 'ํ›„๋ณด ๋ฒ”์œ„๋ฅผ ๋„“๊ฒŒ ํ•˜๋Š” ๊ทธ๋ฆฌ๋””'์ž„์„ ํŒŒ์•…ํ•˜๊ณ  Accepted ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค ๐Ÿ˜…. ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋Š” ํ’€๊ณ  ๋‚˜๋ฉด ์‰ฌ์šด๋ฐ, ์ˆจ์€ ๊ทธ๋ฆฌ๋”” ์š”์†Œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๋‹ค..

 

๐Ÿ“ ์ฝ”๋“œ ์ „๋ฌธ