C++: 바탕화면 정리
C++: 바탕화면 정리
https://school.programmers.co.kr/learn/courses/30/lessons/161990
조건
- 바탕화면에 파일들이 있다. 공간은 정사각형의 배열이며, 각 공간이 비어있으면 점(.)으로, 파일이 있으면 샵(#)으로 주어진다.
- 좌표는 0부터 시작하며, 파일은 각 좌표 사이에 한 변이 1인 크기의 정사각형으로 존재한다.
- 직사각형의 바탕화면에서 한번에 파일을 드래그해서 선택할 수 있는 좌표값 2개를 하나의 배열로 반환해야한다.
풀이
반복문으로 순회하면서 최솟값과 최댓값을 찾을 수 있으면 쉽게 풀린다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<string> wallpaper) {
vector<int> answer;
//최솟값 최댓값 선언
int minX = wallpaper.size();
int minY = wallpaper[0].size();
int maxX = 0;
int maxY = 0;
//순회하며 파일이 있으면 좌표 비교후 저장
for(int i = 0; i < wallpaper.size();i++){
for(int j = 0; j < wallpaper[i].size(); j++){
if(wallpaper[i][j] == '#'){
if(i < minX) minX = i;
if(j < minY) minY = j;
if(i+1 > maxX) maxX = i+1;
if(j+1 > maxY) maxY = j+1;
}
}
}
return {minX,minY,maxX,maxY};
}
This post is licensed under CC BY 4.0 by the author.