๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ •๋ ฌ (4)

JUINTINATION

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit - ์ •๋ ฌ(K๋ฒˆ์งธ์ˆ˜, ๊ฐ€์žฅ ํฐ ์ˆ˜, H-Index)

1๋ฒˆ ๋ฌธ์ œ: K๋ฒˆ์งธhttps://school.programmers.co.kr/learn/courses/30/lessons/42748 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krํ’€์ด๋ฐฐ์—ด array์˜ i๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ์ž๋ฅด๊ณ  ์ •๋ ฌํ–ˆ์„ ๋•Œ, k๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด array๊ฐ€ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉดarray์˜ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅด๋ฉด [5, 2, 6, 3]์ด๋‹ค.1์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ฉด [2, 3, 5, 6]์ด๋‹ค.2์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ด๋‹ค.๋ฐฐ์—ด array, [i, j, k]๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ 2์ฐจ์›..

๋ฐฑ์ค€ 16936๋ฒˆ: ๋‚˜3๊ณฑ2

๋ฌธ์ œ https://www.acmicpc.net/problem/16936 16936๋ฒˆ: ๋‚˜3๊ณฑ2 ๋‚˜3๊ณฑ2 ๊ฒŒ์ž„์€ ์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•œ๋‹ค. ๊ฐ€์žฅ ๋จผ์ €, ์ •์ˆ˜ x๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์—ฐ์‚ฐ์„ N-1๋ฒˆ ์ ์šฉํ•œ๋‹ค. ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ๋‘ ๊ฐ€์ง€ ์žˆ๊ณ , ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋‚˜3: x๋ฅผ 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. x๋Š” 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ ธ์•ผ www.acmicpc.net ํ’€์ด ์ •์ˆ˜ x๊ฐ€ ์žˆ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๊ฐœ์˜ ์—ฐ์‚ฐ์„ N-1๋ฒˆ ์ ์šฉํ•˜๋Š” ๊ฒŒ์ž„์„ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“  ์ˆ˜์—ด a๋ฅผ ์„ž์€ ์ˆ˜์—ด b๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  a๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜3: x๋ฅผ 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. x๋Š” 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ ธ์•ผ ํ•œ๋‹ค. ๊ณฑ2: x์— 2๋ฅผ ๊ณฑํ•œ๋‹ค. ์ฝ”๋“œ C์–ธ์–ด ๋จผ์ € ์ˆ˜์—ด b๋ฅผ qsort๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์ฃผ๋Š” boolํ˜• ์ •์ˆ˜ ๋ฐฐ์—ด visited..

๋ฐฑ์ค€ 18870๋ฒˆ: ์ขŒํ‘œ ์••์ถ•

๋ฌธ์ œ https://www.acmicpc.net/problem/18870 18870๋ฒˆ: ์ขŒํ‘œ ์••์ถ• ์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. X1, X2, ..., XN์— ์ขŒ www.acmicpc.net ํ’€์ด ์ž…๋ ฅํ•œ ์ˆซ์ž๋“ค์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. C์–ธ์–ด๋Š” ์ž…๋ ฅํ•œ ์ˆซ์ž์™€ ์ˆœ์„œ๋ฅผ ๊ตฌ์กฐ์ฒด๋ฅผ, ์ž๋ฐ”๋Š” HashMap์„ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ C์–ธ์–ด C์–ธ์–ด ๋‚ด์žฅ ํ•จ์ˆ˜์ธ qsort ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. compare ํ•จ์ˆ˜๋Š” qsort๊ฐ€ ์ •๋ ฌํ•  ๋•Œ ๊ธฐ์ค€์„ ์žก์•„์ฃผ๋Š” ์—ญํ• ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ณ  ..

์ •๋ ฌ(Sort)

์ •๋ ฌ์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๋‚˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‰๊ฐ€ ๊ธฐ์ค€ ๋น„๊ต ํšŸ์ˆ˜์˜ ๋งŽ๊ณ  ์ ์Œ ์ด๋™ ํšŸ์ˆ˜์˜ ๋งŽ๊ณ  ์ ์Œ ์•ˆ์ •์„ฑ(๋™์ผํ•œ ํ‚ค ๊ฐ’์„ ๊ฐ–๋Š” ์›์†Œ๋“ค์˜ ์ƒ๋Œ€์ ์ธ ์œ„์น˜๊ฐ€ ์ •๋ ฌ ํ›„์—๋„ ๋ฐ”๋€Œ์ง€ ์•Š์œผ๋ฉด ์•ˆ์ •์ ์ธ ์ •๋ ฌ) ์„ ํƒ์ •๋ ฌ(Selection Sort) ์•„๋ž˜์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ์ •๋ ฌ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์—์„œ ํ˜„์žฌ ์œ„์น˜ ~ ๋งˆ์ง€๋ง‰ ์œ„์น˜์—์„œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. 1์—์„œ ์ฐพ์€ ์ตœ์†Ÿ๊ฐ’์„ ํ˜„์žฌ ์œ„์น˜์˜ ๊ฐ’๊ณผ ๊ตํ™˜ํ•œ๋‹ค. ํ˜„์žฌ ์œ„์น˜๋ฅผ ๋งˆ์ง€๋ง‰ ์œ„์น˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ์˜ฎ๊ธด๋‹ค. ๋น„๊ต ํšŸ์ˆ˜ (n - 1) + (n - 2) + … + 1 = n(n - 1)/2 = O(๐‘›^2) ์ด๋™ ํšŸ์ˆ˜ 3(n - 1) ์ „์ฒด ์‹œ๊ฐ„์  ๋ณต์žก๋„ O(n^2) ์•ˆ์ •์„ฑ ์•ˆ์ „์„ฑ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Œ #define swap(x, y, t) (..