[파이썬] 프로그래머스 : 카펫 (Lv.2)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
방향성 생각
전체 블록 수 n = brown + yellow. 이 수의 약수 set를 a라 한다.
brown//2 + 2는 h+w를 만족한다. ㄱ자 모양에서 코너는 두 번 더해짐.
n = h*w를 만족한다.
약수 집합 a를 돌리면서 h+w가 brown//2+2를 만족시키면 탈출
답은 정렬해서 작성
전체코드
def solution(brown,yellow): # 합이 h+w(brown/2+2)이면서 곱이 h*w(yellow+brown)
a = set()
n = yellow+brown
for i in range(1,1+int(n**0.5)):
if n%i==0 :
a.add((i,n//i))
for h,w in a:
if h+w == (brown//2+2):
break
return sorted([h,w],reverse=True)
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 프로그래머스 : 방문 길이 (Lv.2) (0) | 2023.07.11 |
---|---|
[파이썬] 프로그래머스 : 테이블 해시 함수 (Lv.2) (0) | 2023.07.11 |
[파이썬] 프로그래머스 : n^2 배열 자르기 (Lv.2) (0) | 2023.07.10 |
[파이썬] 프로그래머스 : 우박수열 정적분 (Lv.2) (0) | 2023.07.08 |
[파이썬] 프로그래머스 : 줄 서는 방법 (Lv.2) (0) | 2023.07.06 |
[파이썬] 프로그래머스 : 거리두기 확인하기 (Lv.2) (0) | 2023.07.03 |
[파이썬] 백준 1036 : 36진수 (골드1) (0) | 2023.06.29 |
댓글