문제 설명
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int[] solution(int brown, int yellow) {
List answer = new List(); //수정 했으면 좋았을 부분 -> int[] answer = new int[2];
Dictionary<int, int> lst = new Dictionary<int, int>();
int sum = brown + yellow;
for (int i = 1; i <= sum / 2; i++)
{
if (i < 3) continue;
int q = sum / i;
if (sum % i == 0)
{
if (brown == (i * 2) + ((q - 2) * 2))
{
if(lst.ContainsValue(i)) //수정 했으면 좋았을 부분 -> answer[0] = i; answer[1] = q;
{
lst.Remove(q);
}
lst.Add(i, q);
}
}
}
answer.AddRange(lst.Keys);
answer.AddRange(lst.Values);
return answer.ToArray();
}
}
'코딩연습 > 프로그래머스 코딩테스트' 카테고리의 다른 글
[프로그래머스]개인정보 수집 유효기간(2023 KAKAO BLIND RECRUITMENT) (0) | 2023.01.26 |
---|---|
[프로그래머스] 완전탐색 - 직사각형 (0) | 2022.11.14 |
Lv1. 과일장수 (0) | 2022.11.14 |
[프로그래머스]기능개발 (0) | 2021.05.09 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2021.05.09 |