프로그래머스

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

programmers.co.kr

 

문제 이해

  • 최소한의 이동 거리로 모든 파일을 드래그
  • '.'은 빈칸, '#'은 문서

 

문제 풀이

  • string 벡터를 돌며 해당 인덱스의 원소가 '#'인 경우에 해당 위치의 좌표를 각각 비교해서 조건에 맞다면 삽입
  • 반복문이 끝난 후 출력
#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<string> wallpaper) {
    int luX = 51, luY = 51;
    int rdX = 0, rdY = 0;
    int colLength = wallpaper.size();
    int rowLength = wallpaper[0].size();
    
    for(int i = 0; i < colLength; i++) {
        for(int j = 0; j < rowLength; j++) {
            if(wallpaper[i][j] == '#') {
                if(i < luX) luX = i;
                if(j < luY) luY = j;
                if(i + 1 > rdX) rdX = i + 1;
                if(j + 1 > rdY) rdY = j + 1;
            }
        }
    }
    
    return {luX, luY, rdX, rdY};
}

 

+ Recent posts