- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42842
Lv2 문제고, 스스로 푼 문제다!
처음에 문제를 읽었을 때는 그냥 직사각형의 가로,세로 길이를 구하는 건가? 싶어서 이것저것 삽질을 하다가
자세히 읽어보니 갈색 영역은 세로에서 위아래, 가로에서 양옆에 한줄씩은 기본으로 차지해야한다는 것을 알았다
따라서 기본으로 세로 길이가 3이상이 되어야한다
예제 3번을 보면 넓이가 48이고, yellow 영역이 24이다. 기본으로 48의 인수들을 구한 다음에 위의 조건을 만족해야하므로 (가로 - 2) * (세로 - 2) 가 yellow영역이 되는 가로, 세로를 찾은 다음 answer에 append한 결과를 반환하면 된다
제발 문제좀 한번에 꼼꼼히 읽자!!!!!
- 정답 풀이 :
def solution(brown, yellow):
area = brown + yellow
heights = []
#세로 후보들 result에 모으기
for i in range(3, area):
if area % i == 0 :
heights.append(i)
answer = []
for height in heights:
if (height - 2) * (area // height -2) == yellow:
answer.append(area // height)
answer.append(height)
break
return answer
'프로그래머스 > Level 2' 카테고리의 다른 글
[ 스택,큐 / 프로그래머스] 42587번 : 프린터 (0) | 2022.09.19 |
---|---|
[해시 / 프로그래머스] 42577번: 전화번호 목록 (0) | 2022.09.19 |
[해시 / 프로그래머스] 42578번 : 위장 (0) | 2022.09.15 |
[정렬 / 프로그래머스] 42747번: H - index (0) | 2022.09.11 |
[Greedy / 프로그래머스] 42885번 : 구명보트 (0) | 2022.09.11 |