times벡터는 int형이고 n역시 int형인 상태에서,
maxTime을 long long으로 선언해주면 n*times[0]에서의 오버플로우를 막을 수 있는게 아닌가요?
long long maxTime = n*(long long)times[0];
여기서 long long으로의 명시적 형변환을 제거하면 답이 틀리는 테케가 발생합니다.. 왜 그런지 이해가 가질 않네요
제가 어떤 부분에서 잘못 알고 있는지 설명해주시면 정말 감사하겠습니다.
1-1. long long = int * int;
1-2. long long = int; -> 오버플로우 발생 가능성 있음, int * int의 값은 int이고 이 값이 long long에 대입되는 순간 형변환 되는 것
2-1. long long = long long * int;
2-2. long long = long long; -> 문제 없음(이렇게 해서 맞추신거고 C++언어 규칙 상 산술 연산 시 더 포괄적인 타입에 맞게 됩니다)
3-1. long long = long long * long long;
3-2. long long = long long; -> 당연히 문제 없음
오우 감사합니다!