코딩테스트

프로그래머스 / 바탕화면 정리

murlocdev 2026. 5. 16. 06:56

https://school.programmers.co.kr/learn/courses/30/lessons/161990

 

드래그 하는 가장 왼쪽위 좌표와 오른쪽 아래의 좌표를 구하는 문제이다

min과 max값을 갱신시켜 해결했따

maxX와 maxY는 드래그시 우측하단에 있으므로 좌표를 1씩 더해주는게 중요하다

더보기
#include <string>
#include <vector>
#include <climits>  // INT_MAX

using namespace std;

vector<int> solution(vector<string> wallpaper) {
    vector<int> answer;

    int minX = INT_MAX, minY = INT_MAX, maxX = 0, maxY = 0;

    for (int i = 0; i < wallpaper.size(); i++)
    {
        for (int j = 0; j < wallpaper[0].size(); j++)
        {
            if (wallpaper[i][j] == '#')
            {
                if (i < minX)
                {
                    minX = i;
                }
                if (i > maxX)
                {
                    maxX = i;
                }

                if (j < minY)
                {
                    minY = j;
                }
                if (j > maxY)
                {
                    maxY = j;
                }
            }
        }
    }

    answer.push_back(minX);
    answer.push_back(minY);
    // 최고값은 우측 하단을 가리켜야하기 때문에 + 1
    answer.push_back(maxX + 1);
    answer.push_back(maxY + 1);
    return answer;
}