[프로그래머스] Lv2 - 카펫

김멉덥·2023년 8월 5일
0

알고리즘 공부

목록 보기
85/171
post-thumbnail
post-custom-banner

문제

프로그래머스 코딩테스트 고득점 Kit - 완전탐색

자바로 푼 방식
[프로그래머스] Lv2 - 카펫


코드 구현

def solution(brown, yellow):
    answer = []

    # 갈색은 노란색을 다 감싸는 모양, 가로 >= 세로
    # a * b = 노란색 격자 수 라면 -> 갈색은 (a * 2) + (b * 2) + 4

    for i in range(1, yellow + 1):
        if (yellow % i == 0):
            yellow_r = i
            yellow_c = yellow // i
        if (((yellow_r * 2) + (yellow_c * 2) + 4) == brown):
            answer.append(max(yellow_r + 2, yellow_c + 2))
            answer.append(min(yellow_r + 2, yellow_c + 2))
            break

    return answer

if __name__ == '__main__':
    print(solution(10, 2))

풀이

  • yellow의 약수 조합을 구해서 → 해당 약수 조합을 감싸는 개수인 brown이 일치하는 개수를 가진다면 → 정답
  • 정답은 [가로, 세로] 여야 하는데 가로가 세로보다 크거나 같아야 하므로 maxmin을 사용

What I learned

  • 찾아보니 둘레나 넓이로도 풀 수 있다 ! 아무튼 사각형 변 구하는거라 여러 수학 공식들로 풀 수 있다는 점 ….
profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

0개의 댓글