(python)
완전탐색
문제 파악
길이를 이용하는 문제임: 테두리 1줄은 갈색으로 칠해져 있는
def solution(brown, yellow):
total = brown + yellow # brown, yellow의 합이 전체의 카펫 크기
for i in range(total, 1, -1) # total~1까지 -1만큼, 가로의 길이를 찾는다. 노란색의 길이
if total % i == 0: # 나머지가 0이면
a = total // i # 나눈 몫(정수): a
if yellow == (i-2)*(a-2): #테두리 한 줄은 갈색이니, 배제시키면 -2(가로), -2(세로)
return [i,a] #가로,세로
다른 풀이
1. 완전 탐색
가로 * 세로 = 격자 합, 둘레의 합(가로*2 + 세로*2 - 겹치는부분4) = 갈색 둘레
def solution(brown, red):
for i in range(1, int(red**(1/2))+1):
if red % i == 0:
if 2*(i + red//i) == brown-4:
return [red//i+2, i+2]
2. 근의공식
길이, 넓이 공식 각각으로 식 두개 만들고 변수 두개 존재하니까 이차방정식 -> 근의공식
import math
def solution(brown, yellow):
w = ((brown+4)/2 + math.sqrt(((brown+4)/2)**2-4*(brown+yellow)))/2
h = ((brown+4)/2 - math.sqrt(((brown+4)/2)**2-4*(brown+yellow)))/2
return [w,h]
728x90
'기타 > Coding test' 카테고리의 다른 글
[Python] 프로그래머스 level 2. 최댓값과 최솟값 (0) | 2022.11.16 |
---|---|
[Python] 프로그래머스 level 2. JadenCase 문자열 만들기 (0) | 2022.11.16 |
[Python] 이코테 A. 코딩테스트 문법 정리 (0) | 2022.08.31 |
[Python] 코딩테스트에서 요구하는 자료구조와 알고리즘 (0) | 2022.08.19 |
[Python] 프로그래머스 level 1. 성격유형 검사 (0) | 2022.08.19 |