GitHubSeob

C++ / 프로그래머스 / 바탕화면 정리 본문

Programmers/Level 1

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

GitHubSeob 2023. 6. 21.

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제풀이

드래그는 왼쪽 위에서 오른쪽 아래로 한다.

따라서 시작점 y, x는 최솟값을 갖게 되고, 끝점 y, x는 최댓값을 갖게 된다.

주어진 wallpaper을 탐색하면서 #을 발견할 때마다 최솟값과 최댓값을 갱신하면 된다.

 

코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<string> wallpaper) {
    vector<int> answer = { 50,50,0,0 };
    int y(0), x(0);
    for (y = 0; y < wallpaper.size(); ++y) {
        for (x = 0; x < wallpaper[y].size(); ++x) {
            if (wallpaper[y][x] == '#') {
                answer[0] = min(answer[0], y);
                answer[1] = min(answer[1], x);
                answer[2] = max(answer[2], y + 1);
                answer[3] = max(answer[3], x + 1);
            }
        }
    }
    return answer;
}