알고리즘
프로그래머스 - 카펫
Llife
2020. 4. 4. 18:03
https://programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
규칙을 찾아서 문제를 풀었고 제가 세운 점화식은 아래와 같습니다.
brown = (a+b) * 2 - 4 입니다.
brown의 값은 문제에서 주어지고 a와 b의 값을 찾으면 되는 문제입니다.
a와 b의 값은 red+brown의 약수에서 찾을 수 있습니다.
package com.company;
public class carpet {
static class Solution {
public int[] solution(int brown, int red) {
int[] answer = new int[2];
int num = brown + red;
int b = 0;
for(int i=1; i<=num; i++){
if(num % i == 0 ){
b = (brown+4)/2 - i;
if(brown + red == i*b){
answer[0] = i;
answer[1] = b;
}
}
}
return answer;
}
}
}