sein-choi 님의 블로그
[프로그래머스 Lv.2 : 파이썬] 카펫 본문
def solution(brown, yellow):
dict = {}
# yellow의 약수를 구할 떄 yellow의 제곱근 전까지만 구하기
for i in range(1, int(yellow**(1/2)+1)):
# yellow의 약수를 짝지어서 구하기
if yellow % i == 0:
if i <= yellow // i:
dict[i] = yellow // i
# brown의 둘레 길이는 yellow의 (가로+세로)*2에서 4를 더한 값
for key,value in dict.items():
if brown == (int(key)+int(value))*2+4:
return(value+2, key+2) # 전체 가로와 세로 길이는 yellow가로와 세로길이에서 +2를 한 것

다른 코드
def solution(brown, yellow):
for i in range(1, int(yellow**(1/2))+1):
if yellow % i == 0:
if 2*(i + yellow//i) == brown-4:
return [yellow//i+2, i+2]
- 이번 문제에서는 변수를 저장하지않고 바로 사용하는 것이 코드를 간단하고 복잡하지않게 만들어 주었다
'QUIZ > [PYTHON]' 카테고리의 다른 글
| [프로그래머스 Lv.1 : 파이썬] 없는 숫자 더하기 (0) | 2024.09.27 |
|---|---|
| [프로그래머스 Lv.1 : 파이썬] 제일 작은 수 제거하기 (0) | 2024.09.27 |
| [프로그래머스 Lv.1 : 파이썬] 피보나치 수 (0) | 2024.09.11 |
| [프로그래머스 Lv.1 : 파이썬] JadenCase 문자열 만들기 (1) | 2024.09.06 |
| [프로그래머스 Lv.1 : 파이썬] 최댓값과 최솟값 (0) | 2024.09.05 |