algorithm/프로그래머스 문제

[프로그래머스 LV2] 카펫

장경훈 2022. 7. 14. 14:01
  [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