코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import math
def solution(brown, yellow):
def cal(num):
temp = []
for i in range(1, int(math.sqrt(num)) + 1):
if num % i == 0:
y = num // i
temp.append([y, i])
return temp
answer = []
result = cal(yellow)
for x, y in result:
if brown == (x + 2 + y) * 2:
return [x + 2, y + 2]
return answer
print(solution(24, 24))
|
cs |
solution(24, 24) 기준 temp = [[24, 1], [12, 2], [8, 3], [6, 4]]
넓이가 yellow가 될 수 있는 모든 경우의 수를 담은 temp를 반환하는 cal함수를 만들었다.
int(math.sqrt(num)) + 1는 자주 사용하는 방식이니 꼭 숙지하자.
내부 사각형 yellow의 가로 길이는 x, 세로 길이는 y이다.
이 (x, y) 조합을 하나씩 확인하여 brown이 될 수 있는 조건을 충족시키는 (x, y)를 찾고, 찾으면 +2 씩 한 값을 반환해준다.
'알고리즘 문제풀이 with 파이썬 > 프로그래머스' 카테고리의 다른 글
[구현] 프렌즈4블록 (0) | 2021.10.27 |
---|---|
[DFS] 네트워크 (0) | 2021.10.10 |
[정렬] H_Index (0) | 2021.10.09 |
[해시] 베스트앨범 (0) | 2021.10.08 |
[해시] 위장 (0) | 2021.10.04 |