-
[프로그래머스] 카펫 - Python3Problem Solving 2023. 1. 25. 17:23
문제 설명
바깥 테두리만 갈색으로, 나머지 안쪽은 모두 노란색으로 채워져있는 격자모양 카펫의 갈색, 노란색 격자의 수가 주어질 때, 가로 세로 크기를 구하는 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 알고리즘 분류 - Brute Force (완전 탐색)
- 난이도 - Level 2
접근 방법
주어진 문제에서 아래 두 규칙만 찾으면 된다.
규칙1. 갈색, 노란색 격자 수의 합은 카펫의 넓이다.
=> 완전탐색을 이용해 곱해서 카펫의 넓이가 되는 두 수를 찾는다.
규칙2. (가로+세로) * 2 - 4 = (갈색 격자 수)
=> 규칙1에서 찾은 두 수가 위 규칙을 만족하면서 그 두 수가 답이 된다.
+) 노란색 격자의 수는 1 이상이고, 노란색 영역을 갈색이 감싸고 있는 구조이기 때문에 세로 길이는 3 이상이다. (range 설정)
답안 코드
def solution(brown, yellow): answer = [] area = brown + yellow for h in range(3, area): w = area // h if area % h == 0 and w >= h and (w+h)*2 - 4 == brown: answer = [w, h] return answer
'Problem Solving' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 - Python3 (0) 2023.01.26 [프로그래머스] 피로도 - Python3 (0) 2023.01.25 [프로그래머스] 폰켓몬 - Python3 (0) 2023.01.14 [프로그래머스] 소수 찾기 - Python3 (2) 2023.01.12 [프로그래머스] 모의고사 - Python3 (0) 2023.01.12