728x90
반응형
1. 문제 설명
2. 풀이과정
노란색 카펫 모양의 가로의 길이와 세로의 길이를 구하고 그 테두리를 갈색으로 채웠을 때 가로의 길이가 세로의 길이보다 같거나 큰 직사각형 모양의 카펫이 되면 된다.
- 노란색 카펫의 세로 길이를 저장할 변수를 생성하고 세로의 최소 길이인 1로 초기화한다. i = 1
- 원하는 지점에서 멈추기 위해 무한 반복문으로 구현한다. while (True)
- 만약 세로의 길이로 노란색 카펫의 개수를 나누었을 때 나누어 떨어지면 if (yellow % i == 0)
- 노란색 카펫의 모양이 정해진 경우이므로 그 주변으로 갈색 카펫을 배치하여 개수가 동일하면 된다. 따라서 노란색 카펫의 가로의 길이 * 2와 노란색 카펫의 세로의 길이 * 2를 더하고 네 뒤퉁이 4칸을 더해준 결과가 갈색 카펫의 개수와 일치하면 if (brown == (yellow // i * 2) + (i * 2) + 4)
- 전체 카펫의 가로의 길이(노란색 카펫의 가로 길이 + 2)를 추가하고 answer.append(yellow // i + 2)
- 전체 카펫의 세로의 길이(노란색 카펫의 세로 길이 + 2)를 추가한다. answer.append(i + 2)
- 전체 카펫의 가로와 세로의 길이를 구했으므로 종료한다. break
- 구하지 못했다면 노란색 카펫의 세로 길이를 1 증가하고 반복을 이어서 진행한다. i += 1
반응형
3. 소스코드
def solution(brown, yellow):
answer = []
i = 1
while (True):
if (yellow % i == 0):
if (brown == (yellow // i * 2) + (i * 2) + 4):
answer.append(yellow // i + 2)
answer.append(i + 2)
break
i += 1
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] K번째수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
---|---|
[프로그래머스] 문자열 내 마음대로 정렬하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |
[프로그래머스] 숫자 문자열과 영단어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] [1차] 비밀지도 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] 영어 끝말잇기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] 짝지어 제거하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 크기가 작은 부분 문자열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 최소직사각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |