프로그래머스_카펫_python

2021. 8. 8. 19:53코딩테스트

반응형

https://programmers.co.kr/learn/courses/30/lessons/42842

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과

programmers.co.kr

Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.

 

def solution(brown, yellow):
    answer = []
    total = brown + yellow
    s = (brown+4)//2
    for w in range(s//2,s):
        if s-w>w:
            continue
        if (s-w)*w == total:
            answer = [w, s-w]
    return answer

[내코드]

#brown = 2w+2h-4

#(brown+4)/2 = w+h

가로가 세로보다 크거나 작으므로, 중간값부터 for문 시작함

 

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]

[다른사람코드]

math.sqrt(9) // 3.0(float) //제곱근

 

a,b = 2,3 

math.pow(a,b) //8.0(float) // a의 b제곱

pow(a,b) //8(int)

a**b //8(int)

 

w = ( w+h  +  math.sqrt( (w+h)**2 - 4*(총격자) ) )//2

반응형