[ Programmers 42842 ] 카펫(Python)
5510 단어 programmers완전탐색programmers
https://programmers.co.kr/learn/courses/30/lessons/42842
문제
카펫의 테두리는 갈색, 그 외에는 노란색이다.
갈색, 노란색의 개수가 주어질 때 카펫의 가로세로 크기를 구하면 된다.
가로 = x / 세로 = y
일 때,가로 * 세로
=갈색 + 노랑
이다.
0. 가로, 세로 구하기
def solution(brown, yellow):
xy = brown + yellow
# 가로 x, 세로 y
for x in range(3, xy + 1):
for y in range(x, 1, -1):
if x < y:
continue
elif x * y == xy:
if 2 * x + 2 * (y-2) == brown:
return [x,y]
- 문제에서 노란색의 개수는 1보다 많다고 했으므로 가로는 3칸 이상이여야 한다.
- 가로의 크기가 세로 크기보다 같거나 크다고 했으므로
그 이외의 경우는 고려하지 않는다.if x < y: continue
- 만약
가로 * 세로 = 노랑 + 갈색
이고,테두리의 수 = 갈색
이면
[가로, 세로]
를 리턴한다.
문제 풀이
코드
def solution(brown, yellow):
xy = brown + yellow
# 가로 x, 세로 y
for x in range(3, xy + 1):
for y in range(x, 1, -1):
if x < y:
continue
elif x * y == xy:
if 2 * x + 2 * (y-2) == brown:
return [x,y]
Author And Source
이 문제에 관하여([ Programmers 42842 ] 카펫(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uoayop/Programmers-42842-카펫Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)