문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
완전탐색 풀이
function solution(brown, yellow) {
const nums = brown+yellow;
for(let y=1; y<=nums; y++){
if(nums%y===0 && ((2*(nums/y)+2*y)-4)===brown){
return [nums/y, y];
}
}
}
이차 방정식 풀이
function solution(brown, yellow) {
const A = 2;
const B = -(brown + 4);
const C = 2*(brown+yellow);
const discriminant = B * B - 4 * A * C;
const root1 = (-B + Math.sqrt(discriminant)) / (2 * A);
const root2 = (-B - Math.sqrt(discriminant)) / (2 * A);
return [root1,root2];
}
정리
이차 방정식으로도 풀 수 있다.
xy = brown+yellow
2x+2y-4=brown
이 두 가지 식을 연립하면
2x^2-(brown+4)+2(brown+yellow)=0이 나온다.
근의 공식을 사용해서 x,y값을 구하면 된다.
참조
'Programmers' 카테고리의 다른 글
| [프로그래머스] 네트워크 (JS) - DFS (0) | 2023.11.17 |
|---|---|
| [프로그래머스] 타겟 넘버 (JS) - DFS (0) | 2023.11.17 |
| [프로그래머스] 프로세스 (JS) (0) | 2023.11.14 |
| [프로그래머스] 체육복 (JS) - 배열에서 원소 삭제하기, splice, filter (0) | 2023.11.13 |
| [프로그래머스] 올바른 괄호 (JS) (0) | 2023.11.12 |