본문 바로가기
공부/알고리즘

카펫

by shining park 2024. 8. 3.
 

프로그래머스

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

programmers.co.kr

 

- 나의 풀이

노란색 사각형 가로, 세로의 조합 구하기 ➡︎ 나머지가 0인 정수의 조합으로 이루어짐

ex) 노란색 격자의 수 : 24 ➡︎ (가로,세로) = {(24,1), (12,2), (8,3), (6,4)}  단, 가로 >= 세로

 

✅ 카펫의 전체 격자 수 = 카펫의 가로 길이 * 카펫의 세로 길이

노란색 겉으로 테두리 1줄이 갈색인 카펫이므로

노란색 가로 길이 : yellowX ➡︎ 카펫의 가로 길이 : yellowX+2

노란색 세로 길이 : yellowY ➡︎ 카펫의 세로 길이 : yellowY+2

 

 리턴 타입 변경 ArrayList ➡︎ 배열 추가 쉽게 하기 위함

 

- 나의 코드

import java.util.*;

class Solution {
    public ArrayList solution(int brown, int yellow) {
        ArrayList<Integer> answer = new ArrayList<>();
        int yellowX = 0;
        int yellowY = 0;
        
        // 노란색 수의 조합
        for(int i=yellow; i>0; i--) {
            if(yellow%i == 0) {
                yellowX = i;
                yellowY = yellow/i;
                
                if(brown+yellow == (yellowX+2)*(yellowY+2)) {
                    answer.add(yellowX+2);
                    answer.add(yellowY+2);
                    break;
                }
            }
        }
        
        return answer;
    }
}

'공부 > 알고리즘' 카테고리의 다른 글

2019 KAKAO BLIND RECRUITMENT > 실패율  (1) 2024.11.01
공원 산책  (0) 2024.10.30
2024 KAKAO WINTER INTERNSHIP > 가장 많이 받은 선물  (0) 2024.08.01
같은 숫자는 싫어  (0) 2024.08.01
폰켓몬  (0) 2024.08.01