-
프로그래머스 / lv2 / 카펫Algorithm 2020. 2. 19. 15:34
문제
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
======================================================================================================
제한사항
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 빨간색 격자의 수 red는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
입출력 예
입출력 예 설명
해결
최소 단위부터 시작해 규칙을 찾아보면 답이 보인다. brown은 8, red는 1이 최소 범위이므로 여기서부터 천천히 추가하다보면 규칙을 알 수 있다.
세로는 빨간색 타일 갯수 + 2, 가로도 빨간색 타일 갯수 + 2 이다. 그러므로, brown = red_width*2 + red_height*2 + 4 가 되면 해결된다.
코드
느낀점
이번 문제로 배운점은 해결책이 안 보일 때는 입력의 사이즈를 최소로 두고 천천히 늘려보면 해답이 보일 수 있다는 것이다.
출처
https://ju-nam2.tistory.com/82
[Java][프로그래머스][Level 2] 카펫
문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로..
ju-nam2.tistory.com
https://cheolhojung.github.io/posts/algorithm/Programmers-Carpet.html
[Programmers] 카펫 문제 풀이 | jcheolho
프로그래머스 카펫 외곽이 갈색 카펫으로 둘러져 있고, 중앙에는 빨간색 카펫이 위치한다. 빨간색 카펫과 갈색 카펫의 개수가 주어졌을 때, 격자 모양 카펫의 가로 세로 길이를 구하는 문제이다. 첫번째 풀이 8개의 갈색 카펫과 1개의 빨간색 카펫이 최소 값이며, 3 * 3의 격자 모양을 갖는다. 왼쪽 화살표가 가로 길이를 증가시키는 부분이고, 오른쪽 화살표가 세로 길이를 증가시키는 부분이다. 각 단계에서 가능한 갈색 타일의 개수와 빨간색 타일의 개수를 찾아보자
cheolhojung.github.io
'Algorithm' 카테고리의 다른 글
프로그래머스 / lv2 / 단체사진 찍기 (0) 2020.02.24 프로그래머스 / lv2 / 타겟넘버 (0) 2020.02.20 프로그래머스 / lv2 / 가장 큰 정사각형 찾기 (0) 2020.02.19 동적 프로그래밍 (0) 2020.02.19 프로그래머스 / lv2 / 라면공장 (0) 2020.02.19