๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/LeetCode

[LeetCode] Zigzag Conversion

๋ฌธ์ œ๋งํฌ

 

Zigzag Conversion - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด ("ABCDEFG")์„ ์ง€๊ทธ์žฌ๊ทธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด๋ฅผ row ๊ธฐ์ค€์œผ๋กœ ์žฌ์ •๋ ฌํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ ‘๊ทผ ๋ฐฉ๋ฒ•

์ง€๊ทธ์žฌ๊ทธ๋กœ ๋ณ€ํ•œ ํ˜•ํƒœ๋ฅผ index๋ฒˆํ˜ธ๋กœ ๋ฐ”๊ฟ” ์ ์–ด๋ณด๋ฉด ํŒจํ„ด์ด ๋ณด์ธ๋‹ค. (numRows = 4์ผ๋•Œ)
0         6             12
1     5  7        11
2   4    8   10
3         9

ํ•œ๋ฒˆ์˜ ์ˆœํ™˜์ด ์ด๋ค„์งˆ๋•Œ๋งˆ๋‹ค (numRows - 1) * 2 ๊ฐœ์˜ ์š”์†Œ๊ฐ€ ๋ฐ˜๋ณต๋œ๋‹ค.
0,1,2,3,4,5 -> 6,7,8,9,10,11 - > ...

์ด๋ฅผ ํ†ตํ•ด numRows ๊ธธ์ด์˜ ๋นˆ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  index์— ๋งž์ถฐ ์‚ฝ์ž…ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค.

0 -> 0๋ฒˆ index  -> i % (numRows - 1) * 2
1 -> 1๋ฒˆ index  -> i % (numRows - 1) * 2
2 -> 2๋ฒˆ index  -> i % (numRows - 1) * 2
3 -> 3๋ฒˆ index  -> i % (numRows - 1) * 2
4 -> 2๋ฒˆ index -> ((numRows - 1) * 2) -  ( i % (numRows - 1) * 2 )
5 -> 1๋ฒˆ index -> ((numRows - 1) * 2) -  ( i % (numRows - 1) * 2 )

6 -> ๋˜‘๊ฐ™์ด ๋ฐ˜๋ณต
// ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ž์—ด s๋ฅผ ์ง€๊ทธ์žฌ๊ทธ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟจ์„๋•Œ ๋ณ€ํ™˜๋˜๋Š” ๋ฌธ์ž์—ด์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function (s, numRows) {
  let answer = new Array(numRows).fill('');
  let patternLen = (numRows - 1) * 2;

  if (numRows < 2) return s;

  for (let i = 0; i < s.length; i++) {
    let patternidx = i % patternLen;
    if (patternidx < numRows) answer[patternidx] += s[i];
    else answer[patternLen - patternidx] += s[i];
  }

  return answer.join('');
};

'์ฝ”๋”ฉํ…Œ์ŠคํŠธ > LeetCode' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[LeetCode] 3Sum  (0) 2022.06.23
[LeetCode] Furthest Building You Can Reach  (0) 2022.06.21
[LeetCode] search-suggestions-system  (0) 2022.06.19
[LeetCode] Longest Substring without Repeating Characters  (0) 2022.06.17
[LeetCode] binary Tree Cameras  (0) 2022.06.17