알고리즘 with python/알고리즘 스터디
99클럽 코테 스터디 9일차 TIL 완전탐색 : 프로그래머스 LV.2 카펫 with Python
정민됴
2024. 5. 28. 11:25
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 위쪽에서!
이 문제도 옛날에 풀어봤던 문제라서 별로 어렵지 않게 풀었다.
import math
def solution(brown, yellow):
answer = []
for h in range(1, int(math.sqrt(yellow))+1):
if yellow % h == 0:
w = yellow//h
if w+h+2 == brown//2:
answer = [w+2, h+2]
break
return answer
h = 노란색 사각형의 세로
w = 노락색 사각형의 가로
1. h를 하나씩 늘려가는데 yellow가 h로 나누어 떨어지지 않으면 사각형이 아니니 패스
2. 나누어 떨어진다면 yellow를 h로 나눈 값은 w가 된다.
3. w+h+2가 brown의 1/2라면 정답!
이 때 포문은 루트 yellow 만큼 돌렸는데 이유는 루트값을 기준으로 앞 뒤가 짝지어지기 때문! -> 세로가 가로보다 항상 짧다했음
이렇게 풀었다. 어려운 문제는 아니었던 것 같다!