Make Unreal REAL.
article thumbnail
Level 2. 카펫

 

 

노란색 격자의 가로 개수를 W, 세로 개수를 H로 한다.


2W + 2H + 4 = Brown
2(Yellow / H) + 2H + 4 = Brown
2(Yellow / H) + 2H + 4 - Brown = 0
2H^2 + 2Yellow + (4 - Brown)H = 0

 

변수 H에 대한 이차 방정식을 풀면 된다.

 

개수는 자연수이기 때문에 단순하게 1부터 증가시켜 해결했지만, 물론 근의 공식으로 풀 수도 있다.

 

#include <iostream>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow)
{
    float h = 0;

    while (2 * ++h + 2 * yellow / h + 4 != brown);

    return vector<int> {yellow / int(h) + 2, int(h) + 2};
}

'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글

Level 2. 괄호 회전하기  (0) 2023.04.15
Level 2. 가장 큰 수  (0) 2023.04.14
Level 2. 2개 이하로 다른 비트  (0) 2023.04.12
Level 2. 전화번호 목록  (0) 2023.04.11
Level 2. 위장  (0) 2023.04.10
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그