-
[Algoriithm] 프로그래머스 최소직사각형 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 8. 29. 21:06반응형
#include <string> #include <vector> #include <algorithm> using namespace std; int solution(vector<vector<int>> sizes) { int answer = 0; int cardLongSide = 0, cardShortSide = 0; const int cardsCount = sizes.size(); for(int i = 0; i < cardsCount; i++) { const int weight = sizes[i][0]; const int height = sizes[i][1]; if (weight > height) { cardLongSide = max(cardLongSide, weight); cardShortSide = max(cardShortSide, height); continue; } cardLongSide = max(cardLongSide, height); cardShortSide = max(cardShortSide, weight); } return answer = cardLongSide * cardShortSide; }
또다시 코테를 앞두고 한번 문제를 풀어봤는데 난이도에 비해서 생각을 좀 했습니다...역시 문제는 자주자주 풀어줘야 하나봐요.
일단 각 카드들을 보면서 현재 보고 있는 카드들의 긴 부분의 길이, 짧은 부분의 길이를 보고 긴 부분은 "역대 가장 긴 길이"와 비교하고 짧은 부분은 "역대 가장 짧은 부분"과 비교해주면 됩니다. 이렇게 고려하면 회전의 효과를 볼 수 있기에 이런식으로 비교한 뒤 "역대 가로, 세로의 곱"을 리턴해주면 되는 문제입니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
[Algorithm] 백준 7420 맹독 방벽 - C++, Convex Hull (0) 2022.09.05 [Algorithm] 프로그래머스 전력망을 둘로 나누기 - C++, DFS (0) 2022.08.30 [Algorithm] 백준 16938 캠프 준비 - C++, DFS, 백트래킹 (0) 2022.05.18 [Algorithm] 백준 토마토 7569 - C++, BFS (0) 2022.05.18 [Algorithm] 백준 1600 말이 되고픈 원숭이 - C++, BFS (0) 2022.05.16