Programmers / 21.01.12 Carpet
💜 문제 설명
문제설명
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
💜 소스코드
from statistics import median def divisor(yellow): div = [] for i in range(1,yellow+1): if (yellow % i ==0): div.append(i) return div def solution(brown, yellow): arr = [] arr = divisor(yellow) total = brown + yellow flag = 0 answer = [] for i in range((int)(len(arr)/2)+1): if flag == 1 : break width = arr[i] + 2 length = arr[len(arr)-i-1] + 2 if (width * length == total): answer.append(length) answer.append(width) flag = 1 break return answer
💜 내 띵킹띵킹
brown 타일은 단지 테두리일 뿐이기 때문에 yellow의 갯수와 배치만 알면 전체 개수를 알게 된다. 그래서 약수로 확인하고, 약수 구해서 배치를 확인한다음에 전체 개수를 파악하면 된다.
❗ 근데 여기서! 생각했던 부분이, 굳이 arr에 저장을 해야하나, 바로 구하는 방법이 있을거 같다는 생각을 했다. 거의 수학문제로 생각하고 풀어야 하는게 맞는거 같다...!! ❗
Author And Source
이 문제에 관하여(Programmers / 21.01.12 Carpet), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssuh0o0/Programmers-21.01.12-Carpet저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)