[programmers] 카펫(Python)

한은기·2021년 7월 21일
0

Link for Problem

코딩테스트>카펫


Problem

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.


Solution

import math

def solution(brown, yellow):
  answer = []
  for i in range(1, int(math.sqrt(yellow))+1):
    row = float(yellow/i)
    col = i
    if row.is_integer and brown==(2*col+2*row+4):
      answer = [int(row+2), col+2]
      break
  return answer

Review

단순히 갈색, 노란색 타일의 '개수'를 바탕으로 풀이하였다. 다양한 다른 풀이가 존재하였으며, 특히 이차방정식과 근의 공식을 이용한 풀이가 인상깊었다.


GitHub Link

AlgorithmStudy/programmers_카펫.py

profile
🏫Inha Univ. Naval Architecture and Ocean Engineering & Computer Engineering (Undergraduate) / 🚢Autonomous Vehicles, 💡Machine Learning

0개의 댓글