반응형
카펫 풀이
문제풀러가기
https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3
문제 분석
1. brown+yellow = 사각형 넓이 이다.
2. (가로*2)+(세로-2)*2 = 테두리 넓이, 즉 brown 이다.
* 위와 같이 가로길이 4, 세로길이가 3일때
brown = (4*2)+(3-2)*2
코드
def solution(brown, yellow):
result=[]
for i in range(3,int((brown+yellow)**0.5)+1):
if (brown+yellow)%i==0:
row=(brown+yellow)//i
if (row*2)+(i-2)*2==brown:
return [row,i]
코드 분석
def solution(brown, yellow):
result=[]
for i in range(3,int((brown+yellow)**0.5)+1):#에라토스테네스의 체 활용
if (brown+yellow)%i==0: #i가 나누어 떨어질때
row=(brown+yellow)//i # i의 몫을 가로라고 놓는다
if (row*2)+(i-2)*2==brown: #문제분석에서 얻은 공식과 맞다면 row와 i를 반환해준다
return [row,i]
* 위 코드에서 range(3,~~)부터 시작한 이유는, 세로가 3 이하일 경우 노란타일을 만들 수 없기 때문이다.
반응형
'코딩테스트 > 코딩테스트 문제' 카테고리의 다른 글
코딩테스트 준비 - 프로그래머스Lv2: 영어 끝말잇기 풀이 (파이썬) (4) | 2021.07.06 |
---|---|
코딩테스트 준비 - 프로그래머스 위장 풀이/파이썬 딕셔너리를 이용한 문제 풀이 (파이썬) (0) | 2021.07.05 |
코딩테스트 준비 - 프로그래머스: 다리를 지나는 트럭 풀이/상세 설명/스택과 큐 (파이썬) (0) | 2021.07.02 |
코딩테스트 준비 - 프로그래머스: 괄호 회전하기 풀이 (파이썬) (0) | 2021.07.02 |
코딩테스트 준비 - 프로그래머스: 튜플/2019 카카오 개발자 겨울 인턴십 풀이 (파이썬) (0) | 2021.07.02 |
댓글