파이썬 알고리즘 : 카펫
2024년 5월 20일 알고리즘 문제풀이 문제 카펫 난이도 Lv.2 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 def solution(brown, yellow): answer = [] arr = [] # 가로길이와 세로길이에서 모두 2를 빼고 곱한 값이 노란색 카펫의 개수와 같아야 한다. for i in range(1, int((yellow)**0.5)+1): if not yellow % i: arr.append([i, yellow//i]) # 따라서 위에서 구한 값에 2를 더하면 카펫의 가로 길이와 세로 길이가 된다. # 모든 칸의 갯수를 구한 후 노란색 카펫의 갯수를 빼면 갈색 카펫의 갯수가 나온다. # 가로가 길어야 하므로 y, x 순으로 정렬한다. for x, y in arr: x += 2 y += 2 if x*y - yellow == brown: answer = [y, x] return answer