희렌버핏

문자열 압축 본문

Web/알고리즘

문자열 압축

Oliviakim 2020. 6. 3. 23:09

1. 내가 작성했던 코드

const heights = [3, 9, 9, 3, 5, 7, 2];
var answer = [];

let before, after;
for (let i = heights.length - 1; i > 0; i--) {
  before = heights[i];
  for (let j = i - 1; j >= 0; j--) {
    after = heights[j];
    if (after > before) {
      answer.unshift(j + 1);
      break;
    } else {
      if (j == 0) {
        answer.unshift(0);
        break;
      }
    }
  }
}

 

2. 다른 사람의 코드

- map으로 간단히 해결할 수 있었다.

- 굳이 뒤에서부터 비교할 필요가 없었다.

function sol() {
  const heights = [3, 9, 9, 3, 5, 7, 2];
  const ans = [];

  return heights.map((v, i) => {
    while (i) {
      i--;
      if (heights[i] > v) {
        ans.push(i + 1);
        console.log(ans);
        return i + 1;
      }
    }
    ans.push(0);
    console.log(ans);
    return 0;
  });
}

sol();