[프로그래머스 lv2] 카펫(완탐/python) 2R/2R

밀루·2023년 4월 11일
0

백준 문제풀이

목록 보기
36/51

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

def get_xy(num):
    tmp = [(1, num)]
    for i in range(2, num//2+1):
        if num%i == 0: tmp.append((i, num//i))
    # get_xy(8) = [(1, 8), (2, 4)]
    return tmp

def solution(brown, yellow):
    answer = []
    for xycombi in get_xy(yellow):
        x, y = xycombi
        # (x, y)는 노란색 약수조합
        # (x+2)(y+2) == yellow+brown
        # xy+2x+2y+4 = xy + brown
        if 2*x+2*y+4 == brown:
            answer = [x+2, y+2]
    answer.sort(reverse=True)
    return answer

Tech:

  1. for i in range(2, num//2)로 뒀다가 1번 테케만 통과를 못해서 계속 어디가 문젠지 찾았다. num//2+1을 해줬어야 함.
profile
벨로그에 틀린 코드나 개선할 내용이 있을 수 있습니다. 지적은 언제나 환영합니다.

0개의 댓글