Posts 알고리즘 > 프로그래머스 2단계 카펫
알고리즘 > 프로그래머스 2단계 카펫
Cancel

알고리즘 > 프로그래머스 2단계 카펫

처음에는 규칙을 찾으려고 머리를 굴려봤지만
나의 수학 머리로는 찾기가 힘들었다.
그래서 풀이를 통해 힌트를 얻었고,
힌트를 중심으로 다시 식을 써보니까
도움이 됐다.


카펫

문제 설명

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.

image

Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.

Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.

제한 사항

  • 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
  • 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
  • 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.

입출력 예제

image


코드

image

코드 설명

우선 브라운, 옐로우를 더하면 전체 카펫의 수가 나온다.
만약 브라운 = 10, 옐로우 = 2라면
옐로우의 가로 = 전체 가로 -2
옐로우의 세로 = 전체 세로 -2

이렇게 된다. 아래 그림처럼.
그러면 yellow = 옐로우 가로 x 옐로우 세로를 하면
정답을 찾을 수 있다.

image

규칙을 알고나니 간단해진 문제.
하지만 거기까지 내 머리는 닿지않는 멍청한 머리.


This post is licensed under CC BY 4.0 by the author.

TIL 262일차

알고리즘 > 프로그래머스 2단계 2019 KAKAO BLIND RECRUITMENT 오픈채팅방

Comments powered by Disqus.