코딩테스트/프로그래머스 [C++] 최소직사각형 - [문제] https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=cpp# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 생각보다 까다로웠던 문제였다. 완전 탐색 유형인데 어떤걸 가져와야 하는지 처음에는 감이 잘 안왔다가 블로그들을 보고 알게 되었다. 우리가 구할 값은 모든걸 통틀어서 가장 긴 변과 가장 짧은 변 중에서 가장 긴 변을 곱한 값이다. 전자는 쉽게 생각이 되었지만 후자를 생각하는 것이 쉽지 않았던 문제. 그럼 이제 어떻게 가장 짧은 변 중에서 가장 긴 변을 구하는지에 관해서 접근을 해보자. 구할 값 = max(구할 값, min(가로길이, 세로길이)) 해당 방식을 보면 어느정도 감이 왔을 것이다. 가로길이와 세로길이 중에서 짧은 길이를 min을 통해 구하고 해당 길이를 구할 값에서의 max로 스스로 비교하면서 계속 변경해주자. [코드] #include <string> #include <vector> #include <iostream> #include <algorithm> using namespace std; int solution(vector<vector<int>> sizes) { int answer = 0; int width = 0; int height = 0; for(int i = 0;i<sizes.size();i++){ width = max(width, max(sizes[i][1],sizes[i][0])); height = max(height, min(sizes[i][1],sizes[i][0])); } answer = width * height; return answer; } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Yoon-1212 Contents 당신이 좋아할만한 콘텐츠 [C++] 전화번호 목록 2022.12.03 [C++] 포켓몬 2022.12.03 [C++] 완주하지 못한 선수 2022.12.03 [C++] 모의고사 2022.11.15 댓글 0 + 이전 댓글 더보기