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

\(@^0^@)/

[์•Œ๊ณ ๋ฆฌ์ฆ˜] leetcode - rotate array ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

[์•Œ๊ณ ๋ฆฌ์ฆ˜] leetcode - rotate array

minjuuu 2022. 7. 2. 22:45
728x90

rotate array

https://leetcode.com/explore/learn/card/array-and-string/204/conclusion/1182/

 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com

 

๐Ÿ”… ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ์ฝ”๋“œ

๋‚ด๊ฐ€ ํ‘ผ ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค.

์ฝ˜์†”์—์„œ๋Š” ์ž˜ ์ฐํžˆ์ง€๋งŒ leetcode์— ์ œ์ถœํ•˜๋ฉด 

์–ด๋–ป๊ฒŒ ๋œ ์˜๋ฌธ์ธ์ง€,
์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด [5, 6, 7]์„ ์ œ์™ธํ•œ [1, 2, 3, 4]๋งŒ ์ œ์ถœ๋˜์–ด์„œ ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋ณด์•˜์Œ.



๐Ÿ”… ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ•ด๋‹ต ์ฝ”๋“œ

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š”๋ฐ ์˜ค๋‹ต ์ฝ”๋“œ๋“ค์„ ์ ์–ด๋†”์„œใ…  ์œ ํŠœ๋ธŒ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ํ•ด๋‹ต ์ฝ”๋“œ๋ฅผ ์ฐพ์•˜์ง€๋งŒ,
๋‚ด๊ฐ€ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋†”์„œ ์ง€๊ธˆ ์ˆ˜์ค€์˜ ๋‚ด๊ฐ€ ํ™œ์šฉํ•˜์ง„ ๋ชปํ•  ๊ฒƒ ๊ฐ™๋‹ค..

var rotate = function(nums, k) {
    k = k % nums.length
    
    reverse(nums, 0, nums.length-1)
    reverse(nums, 0, k-1)
    reverse(nums, k, nums.length-1)
};

var reverse = function(nums, start, end) {
    while(start < end) {
        let temp = nums[start]
        nums[start] = nums[end]
        nums[end] = temp;
        start++
        end--
    }
}

helper ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ’€์–ด๋‚ธ ์†”๋ฃจ์…˜ ์ฝ”๋“œ.
์ฝ”๋“œ๋„ ํ•œ๋ฒˆ์— ์ดํ•ด๋˜์ง€ ์•Š์•„์„œ ๊ณต์ฑ…์— ์ˆซ์ž๋“ค์„ ์ ์œผ๋ฉฐ ํ•˜๋‚˜์”ฉ ํ•˜๋‚˜์”ฉ ์ดํ•ดํ•˜์˜€๋‹ค.

๋‚ด๊ฐ€ ์ ์€ ์ฝ”๋“œ์˜ unshift ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋ฌด๋ž˜๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ์ธก๋ฉด์—์„œ ์ข‹์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•„,
์ด๋Ÿฐ ์‹์œผ๋กœ helper ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์žฌ์‚ฌ์šฉ์ ์ธ ์ธก๋ฉด์—์„œ๋„ ์ข‹๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋‚ด๊ฐ€ ๊ตฌํ˜„๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด...
helper ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์ž.

728x90