DevLog:-)

[프로그래머스][Javascript]카펫 본문

알고리즘/프로그래머스

[프로그래머스][Javascript]카펫

hyeon200 2023. 8. 21. 23:41
반응형

문제

카펫

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

function solution(brown, yellow) {
    var answer = [];
    let x,y;
    let i =1;
    
    while(i<=yellow){
        if(parseInt(yellow/i)==yellow/i){
            x = i;
            y = yellow/i;
            if(x + y ==(brown-4)/2){
                answer.push(y+2,x+2);
                break;
            }  
        }       
        i++;    
    }    
    
    return answer;
}

 

풀이

예제 분석

1) brown 10, yellow 2 /return [4,3]

- yellow의 약수 짝에서 합이 (brown-4)/2와 같은 짝

(2,1) => 2+1 = (brown-4)/2  = (10 - 4)/2 = 3

- 그 약수 값에서 2씩 더한 값(2+2,1+2) = return 값 [4,3] 

 

2) brown 24, yellow 24 /return [8,6]

- yellow의 약수 짝에서 합이 (brown-4)/2와 같은 짝

(6,4) => 6+4 = (brown-4)/2  = (24 - 4)/2 = 10

- 그 약수 값에서 2씩 더한 값(6+2,4+2) = return 값 [8,6]

 

규칙 : 합이 (brown-4)/2가 되는 yellow의 약수 짝 구하기

           그 약수 값에서 2씩 더해서 배열에 넣기

 

 

✅checkpoint!

parseInt(yellow/i) 몫을 구함
arr.push(a,b) 배열에 a,b동시 삽입 arr = [a,b]

 

반응형