728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [개미군단]

2. 시도해본 것들

우선 문제를 보자마자 게임알고리즘 짜는것 같아서 살짝 두근두근 했다.

문제를 이해했을땐 역시 '이건 어떻게 풀지...?'

몇분 고민하다가 장군개미5부터 구하면 어떻게든 되지 않을까라고 생각했다.

3. 해결과정

count = parseInt(hp/5)

parseInt() - 문자열을 정수로 바꾸는 함수입니다.

나누기후에 몫을 구하려고 찾았는데,이 함수를 이용하면 장군개미 수를 구할 수 있었다(몫 구하기)

 

그럼 나머지 3짜리 병정개미와 1짜리 일개미는 어떻게 구하지....?

모르겠다 노가다해야지ㅠㅠㅠ

 

4. 알게 된 점

 

나의 문제풀이

function solution(hp) {
    var answer = 0;
    var count = 0;
    //장군5 병정3 일1 ==>최소한 병력
    count = parseInt(hp/5) //장군개미 숫자
    if( (hp-(count*5)) === 4){ //나머지는 4,3,2,1 이니까 노가다..
        count += 2
    } else if ( (hp-(count*5)) === 3 ){
        count += 1
    } else if ( (hp-(count*5)) === 2 ){
        count += 2
    } else if ( (hp-(count*5)) === 1 ){
        count += 1
    } else {
        count;
    }
    return count;
}

 

 

남의 문제풀이

function solution(hp) {
    const 장군개미 = Math.floor(hp / 5);
    const 병정개미 = Math.floor((hp - (장군개미 * 5)) / 3);
    const 일개미 = hp - ((장군개미 * 5) + (병정개미 * 3));
    return 장군개미+병정개미+일개미;
}

 

이게 내가 풀고 싶었던 풀이방법이다ㅠㅠ

병정개미는 나머지값을 나눠서 구할 수 있었고, (3보다크면 1 작으면 0)

일개미는 나머지를 구했으니 총합에서 장군+병정을 뺀 값

 

한줄만에 멋지게 풀순 없지만

저런식으로 깔끔하게 풀고 싶었는데 아쉽다.

728x90
반응형

+ Recent posts