카펫

최진훈·2022년 3월 16일
0

programmers

목록 보기
52/73


일단 yellow가 커질때 마다 변하는 brown의 규칙을 찾은 다음 반복문을 돌려서 일치하는 경우를 찾아내면 될 듯 하다. 그림을 그려보니 네모칸이 늘어나는 규칙은 4 + 가로x2 + 세로x2였다. 그럼 위의 식과 일치하는 brown의 값을 찾아주고 그 때의 가로 세로 길이만 구해주면 되겠다.

  1. yellow만큼(넉넉한 크기) 반복문을 돌리면서 찾아낸 규칙에 따라 가로를 i로 두고 1에서 부터 하나씩 증가시킨다.
  2. 세로는 사각형개수/가로 이므로 yellow/2로 설정한다.
  3. 4 + i*2 + yello2*2brown과 같아질때의 i값을 찾는 것 이다.
  4. 조건 중에서 가로는 세로와 같거나 크다고 명시되어 있으니 그 조건을 추가해준다.
  5. 값을 찾으면 가로,세로 순서대로 answer에 넣어주고 반복문을 빠져나온다.
  • 계산된 사각형의 가로(i), 세로(yellow/i)는 노란 사각형에 해당하므로 전체 사각형의 가로는 i+2, 세로는 yellow/i+2로 넣어준다.

레고레고

가로를 늘려가면서 반복문으로 계산하는 것 까지는 무난하게 생각했으나 세로를 어떻게 둬야하는지 의문이 었는데 질문하기의 글들을 보고 참고하여 해결 할 수 있었다.
그리고 처음에 빈 배열로 선언이 되면 저 answer = answer.plus(Int) 형식으로 더해주는게 마음에 안든다. 0,1번 인덱스에 선언해주는 개념이 아니라 단순히 값을 두번 추가해주는 것 이어서
똑같은 plus메소드를 두번 사용해야한다. 다른 방법이 없을까..?

일단 테스트 통과~~

profile
레고레고

0개의 댓글