본문 바로가기

알고리즘

프로그래머스 - 카펫

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;
        }
    }
}

'알고리즘' 카테고리의 다른 글

프로그래머스 - 체육복(그리디)  (2) 2020.04.06
프로그래머스 - 숫자야구  (0) 2020.04.04
프로그래머스 - 소수찾기  (0) 2020.04.04
프로그래머스 - 모의고사  (0) 2020.04.04
프로그래머스 - 오픈채팅방  (1) 2020.03.28