내 풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<string> strArr) {
int max_len = 0;
vector<int> strlen(30);
for (string s: strArr){
strlen[s.size()-1] += 1;
}
for (int i: strlen){
max_len = max(i, max_len);
}
return max_len;
}
vector을 초기화하는 방법
#include <vector>
vector<int> vec(5); // {0,0,0,0,0}
vector<int> vec2(5, 3); // {3,3,3,3,3}
위 처럼 vector의 기본값을 지정하여 초기화할 수 있다. for문을 사용하지 않고 간단하게 초기화하는 방법을 활용하자! vector<int>
로 declare한 뒤에 그 변수명 뒤에 괄호 안에 (크기, 초깃값)을 지정하면 된다. 초깃값을 전달하지 않으면 기본값인 0으로 초기화된다.
vector에서 최댓값 구하기
for문으로 일일히 비교하기
#include <algorithm>
// 중간 생략
int ans = 0;
for (int i: vec){
ans = max(ans, i);
}
max_element 활용하기
#include <algorithm>
// 중간 생략
int ans;
ans = *max_element(vec.begin(), vec.end());
이 방법이 매우 편리하다고 생각했다. (근데 그냥 max()안에 arr을 전달하면 되는 python에 비해서는 귀찮긴 하다…) max_element()
는 iterator을 return하며, *max_element()
는 최댓값의 실제 값을 return한다.