반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
이런 문제는 규칙성을 먼저 찾으면 되는거 같다.
# 노란색 네모 만들기 위해 필요한 수
# 제곱들
# 1, 4, 9, ...
# 2와 배수
# 2, 4, 6, 8, 10, ...
def solution(brown, yellow):
answer = []
answerlist = []
# 제곱일 경우
a = yellow ** 0.5
if a - int(a) == 0:
answer = [a+2, a+2]
return answer
# 2의 배수일 경우
# 약수를 구하자
for i in range(1, yellow+1):
if yellow % i == 0:
answerlist.append(i)
for i in range(0, int(len(answerlist)/2)):
print(answerlist[-i-1], answerlist[i])
row = answerlist[-i-1] + 2
column = answerlist[i] + 2
if row * 2 + column * 2 - 4 == brown:
answer = [row, column]
return answer
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 2] 짝지어 제거하기 (0) | 2022.10.16 |
---|---|
[Python] [Level 2] 영어 끝말잇기 (리스트로 중복 제거하기) (1) | 2022.10.11 |
[Python] [Level 2] 다음 큰 숫자 (bin 함수, count 함수 활용하기) (0) | 2022.10.08 |
[Python] [Level 2] 이진 변환 반복하기 (0) | 2022.10.08 |
[Python] [Level 2] 피보나치 수 구현 (0) | 2022.10.04 |