[LV2] 카펫 문제링크 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, www.programmers.co.kr |
문제해설
기본적으로 예시에서 알 수있듯이 노란블럭의 가로, 세로에 +2해준값이 전체블럭의 가로세로임을 알 수 있다. 또한 갈색 블록과 노란블럭의 관계식을 보면 갈색블럭=2*(노란블럭 가로 + 노란블럭 세로)+4임을 알 수 있음으로 이것을 구현하면 된다.
def solution(brown, yellow):
answer = []
tmp=[]
width,height=1,1 #노란 블럭 가로세로의 최소값 선언
for i in range(yellow//2,0,-1): #만약 yellow 블럭이 1이 아니라면 갈색 블럭의 수는 노란블럭 2*(가로+세로)+4임을 이용하여 맞는 가로세로 찾기
if yellow%i==0:
width=yellow//i
height=i
if 2*(width+height)+4==brown:
break;
if width<height: #만약 세로가 가로보다 길다면 서로 교환
width,height=height,width
answer.append(width+2) #전체 가로길이는 노란블럭의 가로 +2
answer.append(height+2)#전체 세로길이 또한 노란블럭의 세로+2
return answer
피드백
- 처음에 단순하게 노란블럭 가로세로+2를 사용하여 코드를 구현했지만 갈색블럭의 요소를 고려하지 않아서 잘못되었었다. 꼼꼼하게 확인해볼 필요가 있다.
'algorithm > 프로그래머스 문제' 카테고리의 다른 글
[프로그래머스LV2]메뉴 리뉴얼 (0) | 2022.07.15 |
---|---|
[프로그래머스 LV2] 소수 찾기 (0) | 2022.07.15 |
[프로그래머스 LV2] 튜플 (0) | 2022.07.14 |
[LV2]위장 (0) | 2022.07.13 |
[LV2]전화번호 목록 (0) | 2022.07.13 |