https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

프로그래머스

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

programmers.co.kr


문제 해결을 위한 과정

이 문제의 경우 수학적 지식을 이용하면 해결할 수 있는 문제였습니다.

저 같은 경우는 for문을 돌리면서 yellow의 가로길이는 brown-2라는 것을 이용해 해결할 수 있었습니다. 이를 소스코드로 작성하면 다음과 같습니다. 또한 가로, 세로의 순서를 맞추기 위해 가로에 더 큰 값을 집어넣어야 합니다. 이를 위해 answer.clear()를 넣어주어 혹시 모를 가로, 세로 길이의 역전을 방지하였습니다.


소스코드
def solution(brown, yellow):
    answer = []
    n = brown // 2
    for i in range(3, n):
        temp = yellow % (i-2)
        if temp == 0:
            temp2 = yellow // (i-2)
            if i + i + temp2 + temp2 == brown:
                answer.clear()
                answer.append(i)
                answer.append(temp2 + 2)
        
    return answer

+ Recent posts