๐Ÿ’› JavaScript/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[JS] 2020์นด์นด์˜ค - ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ

Jayden1116 2022. 7. 1. 00:21
function solution(numbers, hand) {
  let leftPosition = [0, 3];
  let rightPosition = [2, 3];
  let leftColumn = [1, 4, 7];
  let centerColumn = [2, 5, 8, 0];
  let rightColumn = [3, 6, 9];
  let total = [leftColumn, centerColumn, rightColumn];
  let result = '';

  for (let num of numbers) {
    if (leftColumn.includes(num)) {
      result += 'L';
      leftPosition = [0, leftColumn.indexOf(num)];
    } else if (rightColumn.includes(num)) {
      result += 'R';
      rightPosition = [2, rightColumn.indexOf(num)];
    } else {
      // 2, 5, 8, 0 ์ธ ๊ฒฝ์šฐ
      let centerPosition = [1, centerColumn.indexOf(num)];
      let leftDistance =
        Math.abs(leftPosition[0] - centerPosition[0]) +
        Math.abs(leftPosition[1] - centerPosition[1]);
      let rightDistance =
        Math.abs(rightPosition[0] - centerPosition[0]) +
        Math.abs(rightPosition[1] - centerPosition[1]);
      if (leftDistance < rightDistance) {
        result += 'L';
        leftPosition = [1, centerColumn.indexOf(num)];
      } else if (leftDistance > rightDistance) {
        result += 'R';
        rightPosition = [1, centerColumn.indexOf(num)];
      } else {
        // ์–‘์†์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ
        if (hand === 'left') {
          result += 'L';
          leftPosition = [1, centerColumn.indexOf(num)];
        } else {
          result += 'R';
          rightPosition = [1, centerColumn.indexOf(num)];
        }
      }
    }
  }
  return result;
}

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ

[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"

programmers.co.kr

 

  1. ํ‚คํŒจ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๋กœ์— ๋Œ€ํ•ด์„œ x, ์„ธ๋กœ์— ๋Œ€ํ•ด์„œ y ๋ผ๊ณ  ํ•  ๋•Œ ๊ฐ๊ฐ์˜ ์œ„์น˜๊ฐ€ [x, y]๊ฐ€ ๋˜๋„๋ก ๋ฐฐ์—ด ๊ตฌ์„ฑ
  2. ์™ผ์ชฝ ๋ฐฐ์—ด๊ณผ ์˜ค๋ฅธ์ชฝ ๋ฐฐ์—ด์— ํ•ด๋‹นํ•  ๋•Œ๋Š” ๊ฐ๊ฐ 'L'๊ณผ 'R'์„ ๋”ํ•˜๊ณ  ํ•ด๋‹น ์œ„์น˜์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅ
  3. ์ค‘์•™ ๋ฐฐ์—ด์— ํ•ด๋‹นํ•  ๋•Œ๋Š” ๊ฐ๊ฐ์˜ ์†๊ฐ€๋ฝ ์œ„์น˜์— ๋”ฐ๋ฅธ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๊ทธ ๊ฑฐ๋ฆฌ๋ฅผ ๋น„๊ต
  4. ํ•ญ์ƒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ ๋‚˜์„œ ๊ทธ ์ž๋ฆฌ์˜ ํฌ์ง€์…˜์„ ์†๊ฐ€๋ฝ ๊ฐ๊ฐ์— ์ง€์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์ž

 

๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ณ , ํ•ด๋‹น ํ‚คํŒจ๋“œ๋กœ ์ด๋™ ํ›„ ๊ทธ ์ž๋ฆฌ์˜ ์œ„์น˜ ๋ฐฐ์—ด์„ ๋”ฐ๋กœ ํ• ๋‹นํ•ด๋‘์–ด์•ผ ๋‹ค์Œ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ๋งŒ ์ธ์ง€ํ•˜๊ณ 
ํ’€๋ฉด ์–ด๋ ต์ง„ ์•Š์€ ๋ฌธ์ œ๊ฐ™๋‹ค.