320x100
https://school.programmers.co.kr/learn/courses/30/lessons/42842
yellow가 1 이상이라는 건 가로와 세로의 최소 길이가 3이라는 것을 의미한다. 그리고
- 가로와 세로의 곱은 직사각형 전체의 넓이
- (가로 - 2) 와 (세로 - 2)의 곱은 yellow의 넓이
두 넓이조건과 최소 길이가 3임을 이용, 답을 찾을 때까지 while문을 반복한다.
def solution(brown, yellow):
xy = brown + yellow # 넓이
num = 3
while xy//num >= 3: # yellow가 존재하려면 한 변의 길이가 3 이상
if xy % num == 0 and (xy//num - 2) * (num - 2) == yellow : # 넓이 조건 + yellow 조건 만족 => answer
temp = xy//num
if temp > xy//temp: # x가 더 크게
x = temp
y = xy//temp
break
else:
y = temp
x = xy//temp
break
num += 1
answer = [x,y]
return answer
'코딩테스트' 카테고리의 다른 글
[파이썬] 주차 요금 계산 - 2022 KAKAO BLIND RECRUITMENT [CODING TEST #29] (0) | 2022.07.31 |
---|---|
[파이썬] 2개 이하로 다른 비트 - 월간 코드 챌린지 시즌2 [CODING TEST #28] (0) | 2022.07.30 |
[파이썬] 다트 게임 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #26] (0) | 2022.07.29 |
[파이썬] 비밀지도 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #25] (0) | 2022.07.29 |
[파이썬] 같은 숫자는 싫어 [CODING TEST #24] (0) | 2022.07.29 |
댓글