티스토리 뷰
728x90
반응형
문제
programmers.co.kr/learn/courses/30/lessons/42842?language=python3
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
코드
def solution(brown, yellow):
answer = []
for col in range(3, brown):
if (col-2) * ((brown-(col*2))//2) == yellow:
return[(brown-(col*2))//2+2, col]
brown의 세로의 길이는 최소 3부터 brown//2 까지만 for문을 돌게한다.
(세로의 길이가 가로의 길이와 같거나 더 작기 때문에 세로의 길이가 brown//2 보다 커질수없다.)
yellow는 (brown 가로길이-2)(brown 세로길이-2)로 표현할 수 있고
brown 가로길이는 brown에서 세로길이*2를 빼주고 나누기 2를 해주면 가로길이가 되는데 세로길이를 빼줄때 겹치는 부분을 빼줬으므로 +2를 해서 다시 채워준다.
(하지만 yellow 가로길이는 brown 가로길이에 -2를 해줘야 하므로 +2와 -2가 만나서 사라짐)
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level2, 124 나라의 숫자 (Python) (1) | 2021.06.02 |
---|---|
[프로그래머스] Level2, 소수 찾기 (Python) (0) | 2021.05.08 |
[프로그래머스] Level3, 2 x n 타일링 (Python) (0) | 2021.05.05 |
[프로그래머스] Level2, 위장 (Python) (0) | 2021.05.02 |
[프로그래머스] Level2, 다음 큰 숫자 (Python) (0) | 2021.05.02 |
댓글