티스토리 뷰

def solution(brown, yellow):
    answer = []
    x,y = 0,3
    cal= (brown + 4)//2

    while 1:
        x = cal - y
        if x < y:
            break
        if x >= y: #조건에 맞으면
            if x*y - brown == yellow:
                answer.append(x)
                answer.append(y)

                break

        y += 1
    return answer



print(solution(8,1))

둘레= 가로 *2 + (세로-2(가로에서 카운트한 모서리부분) ) * 2 이기 때문에 

가로 : x , 세로 : y

brown = 2x + 2(y-2)

조건은 x>=y 과  y >2이다.

y>2인 이유는?

세로가 3개 이상 이어야만 가운데 부분이 생기기 때문!!

 2개면 가운데 부분이 생길 수가 없다!

그래서 y는 초기에 3으로 세팅해놓고 반복문 한번 돌면 +1을 해주는 방식으로 찾는다.

x*y를 하면 모든 칸의 개수가 나오는데 테두리칸 수를 빼면 가운데 개수가 나온다.

그래서 x*y - brown == yellow라는 조건문을 줬고 조건이 일치할 때 answer에 넣고 while문 중단시켜준다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함