Jun 개발노트

프로그래머스 - 탑

January 13, 2020

const getTop = height => {
    //condition
    // 1. 나보다 높은 탑에서 수신한다.
    // 2. 수신한 탑의 위치를 넣는다.
    // 3. 나보다 높은 곳이 없다면 0을 리턴한다.
    // 4. 배열의 length를 구하자
    // 5. 비교하는 배열은 pop기준으로 배열이 줄어든다
    height.unshift(0);
    const len = height.length;
    const result = [];
    for (let i = 0; i < len; i++) {
        let signal = height.pop();
        let copy = height.concat();
        let copyLen = copy.length;
        for (let j = 0; j < copyLen; j++) {
            let popEle = copy.pop();
            if (signal < popEle) {
                break;
            }
        }
        result.push(copy.length);
    }
    return result.reverse().splice(1);
};

test("탑 구하기", () => {
    expect(getTop([10, 4, 3, 11, 1])).toEqual([0, 1, 2, 0, 4]);
});

Written by Junho You 배운것을 기록하자