Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 우테코
- 프로그래머스
- 그래프
- Sort
- node.js
- 함수
- Linux
- JetsonNano
- 코딩테스트
- 자바스크립트
- 문자열
- 우아한테크코스
- 백준
- 그리디
- 코테
- 프론트엔드
- 고득점kit
- JavaScript
- express
- BFS
- 파이썬
- 웹개발
- Python
- JS
- 알고리즘
- npm
- 최단거리
- OpenCV
- dfs
- 프리코스
Archives
- Today
- Total
공대생
코딩테스트 고득점 kit, 완전탐색 - 카펫 본문
문제설명
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
제한사항
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
입출력 예
자료구조 및 알고리즘: 완전탐색
풀이
첫번째 풀이(완성코드)
더보기
# Programmers 카펫
# 브루트포스
def solution(brown, yellow):
answer = []
for i in range(1, yellow + 1):
# yellow의 가로세로 계산
if yellow % i == 0:
y_width = yellow // i
else:
continue
y_height = i
# 필요한 brown 수 계산
need_brown = (y_height + 2) * 2 + y_width * 2
if need_brown == brown:
break
answer.append(y_width + 2)
answer.append(y_height + 2)
return answer
yellow의 가로, 세로를 구한 뒤에 yellow의 가로 +2, yellow의 세로 + 2가 전체 가로, 세로 길이가 된다.
yellow 직사각형을 만들기 위해 for문을 통해 1부터 시작해서 yellow의 약수로 나눠서 이때 필요한 brown의 개수를 계산하여 매개변수로 입력받은 brown 수와 동일할 때 for문을 나오도록 구현했다.
'스터디 > 프로그래머스' 카테고리의 다른 글
Level 2 - 최솟값 만들기 (js sort 제대로 사용하기) (2) | 2022.09.17 |
---|---|
Level 1 - 문자열 다루기 기본 (1) | 2022.09.01 |
코딩테스트 고득점 kit, 정렬 - 가장 큰 수 (0) | 2022.05.26 |
코딩테스트 고득점 kit, 해시 - 전화번호 목록 (0) | 2022.05.16 |
코딩테스트 고득점 kit, 해시 - 완주하지 못한 선수 (0) | 2022.05.13 |
Comments