Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
Archives
- Today
- Total
기록
[programmers/python] 카펫 - 완전탐색 본문
- url : https://school.programmers.co.kr/learn/courses/30/lessons/42842?language=python3
Leo는 갈색 테두리와 노란색 내부로 이루어진 카펫을 보았다.
갈색 격자 수 brown과 노란색 격자 수 yellow가 주어졌을 때, 전체 카펫의 가로와 세로 크기를 구하는 문제이다.
조건 정리
- 전체 격자 수 = brown + yellow
- 내부는 (가로 - 2) * (세로 - 2) = yellow
- 테두리는 2a + 2b + 4 = brown을 만족해야 한다.
이때 a, b는 내부 사각형의 가로와 세로이다.
즉, 아래 두 조건을 만족하는 a, b를 찾으면 된다.
- a + b = (brown - 4) // 2
- a * b = yellow
전체 가로, 세로는 a + 2, b + 2이다.
코드
def solution(brown, yellow):
_sum = (brown - 4) // 2
_mul = yellow
for i in range(1, _sum // 2 + 1):
j = _sum - i
if i * j == _mul:
return [j + 2, i + 2]
- i, j는 내부 사각형의 세로와 가로이다.
- 조건을 만족하면 테두리를 더해 [전체 가로, 전체 세로]를 반환한다.
- 가로가 세로보다 크거나 같다는 조건을 만족한다.
예시
solution(10, 2) # [4, 3]
solution(8, 1) # [3, 3]
solution(24, 24) # [8, 6]
'코딩테스트 > python' 카테고리의 다른 글
[programmers/python] 폰켓몬 - 최대한 다양한 종류 고르기, Set (0) | 2025.05.24 |
---|---|
[programmers/python] 마라톤 완주자 찾기 - collections.Counter (0) | 2025.05.24 |
[programmers/python] 소수찾기 - 완전탐색, 에라토스테네스의 체 (0) | 2025.05.21 |
[programmers/python] 모의고사 - 완전탐색 (0) | 2025.05.21 |
[programmers/python] 최소직사각형 - 완전탐색 (0) | 2025.05.21 |
Comments