The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
(요약) 문자열을 지그재그로 만들고 위에서부터 차례로 나열하라.
var convert = function(s, numRows) { if(numRows === 1) return s; const answer = []; let index = 0; let dir = 1; for(let i = 0; i < s.length; i++) { if(i < numRows) { answer.push([s[index]]); } else { if(index < 0 || index > numRows - 1) { dir = dir * (-1); index += 2 * dir; } answer[index].push(s[i]); } index += dir; } return answer.map(arr => arr.join('')).join(''); };
numRows
가 1일 때는 바로 문자열을return
하고, 아닐 때는index
값을 증가, 감소 시키면서 배열에 하나씩push
함.
마지막에join()
으로 배열로 나눠진 문자열을 합침.