반응형
좌표 최소최댓값 구하는 아주 쉬운 문제였음 / 수행시간 O(N)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <string>
#include <vector>
using namespace std;
/*
<문제>
바탕화면 wallpaper 배열 -> (0, 0) / 빈칸은 ., 파일이 있는 칸은 #을 가짐
최소한의 드래그 거리로 바탕화면에 있는 모든 파일을 지우고자 함
이동거리가 최소인 드래그 시작점, 끝점을 담은 정수배열을 return
wallpaper길이 <= 50
wallpaper[i]길이 <=50
시작점 : 좌측상단, 끝점 : 우측하단 을 만족해야함
<풀이>
가장 좌측상단 좌표 담고, 그 후 가장 우측하단 좌표에 각 1씩 더한 값 담으면 될듯
*/
vector<int> solution(vector<string> wallpaper) {
vector<int> answer;
int min_i = 100, min_j = 100, max_i = -1, max_j = -1;
for (int i = 0; i < wallpaper.size(); i++) { //세로
for (int j = 0; j < wallpaper[i].size(); j++) { //가로
if (wallpaper[i][j] == '#') { //파일인 경우
if (i < min_i) min_i = i;
if (j < min_j) min_j = j;
if (i > max_i) max_i = i;
if (j > max_j) max_j = j;
}
}
}
//for문 다 돌고, answer 구하기
answer.push_back(min_i);
answer.push_back(min_j);
answer.push_back(max_i + 1);
answer.push_back(max_j + 1);
return answer;
}
|
cs |
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[Programmers] 프로그래머스 Lv.2 요격 시스템 문제풀이(C++) (0) | 2023.05.30 |
---|---|
[Programmers] 프로그래머스 Lv.2 광물 캐기 문제풀이(C++) (1) | 2023.05.12 |
[Programmers] 프로그래머스 Lv.2 과제 진행하기 문제풀이(C++) (1) | 2023.04.22 |
[Programmers] 프로그래머스 Lv.1 공원산책 문제풀이(C++) (0) | 2023.04.20 |
[Programmers] 프로그래머스 Lv.3 아방가르드 타일링 문제풀이(C++) (0) | 2023.04.20 |