티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/42842
- 해설 :
카펫이 다음과 같이 테두리는 갈색, 속 알멩이는 노란색으로 칠해져 있다.
갈색 칸의 개수와, 노란색 칸의 개수만을 알고 있을 때 원래 카펫의 가로와 세로 길이를 찾으면 된다.
- 풀이 :
문제의 분류가 완전탐색로 구분되어있어 크게 봤을 땐 완전탐색이 맞다. 하지만 수학적인 부분들을 생각하는 것에 시간이 더 걸렸던 것 같다. 먼저 갈색, 노란색 블록의 개수의 합만큼 가로나 세로 길이의 범위가 가능할 수 있기 때문에 가로와 세로 길이가 될 수 있는 후보들을 nums배열에 넣어주었다. 이 때, 블록의 합을 어떤 값으로 나눌 때 나머지가 있는 값이라면 길이 후보들에서 제외하였다.
모든 값 후보들에 대해 테두리의 개수, 즉 갈색 블록의 수가 맞아 떨어지는 가로와 세로 길이 후보를 찾아서 이를 리턴하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | def solution(brown, yellow): answer = [] nums = [] for i in range(1,brown+yellow+1): if (brown+yellow) % i == 0: nums.append(i) start = 0 end = len(nums)-1 while start <= end: if (nums[start] + nums[end]) * 2 - 4 == brown: return [nums[end],nums[start]] start += 1 end -= 1 | cs |
320x100
'Algorithm > Brute Force' 카테고리의 다른 글
(Python) - BOJ(1107번) : 리모컨 (0) | 2022.01.25 |
---|---|
(Python) - BOJ(1038번) : 감소하는 수 (0) | 2022.01.25 |
(Python) - 프로그래머스 : 올바른 괄호의 개수 (0) | 2022.01.24 |
(Python) - 프로그래머스 : 소수 찾기 (0) | 2022.01.19 |
(Python) - 프로그래머스 : 모의고사 (0) | 2022.01.18 |
댓글
© 2022 WonSeok, All rights reserved