정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
입출력 예
numbers | result |
---|---|
[1, 2, -3, 4, -5] | 15 |
[0, -31, 24, 10, 1, 9] | 240 |
[10, 20, 30, 5, 5, 20, 5] | 600 |
numbers를 i,j로 반복문을 두 개 돌리고 i * j를 곱하는 방식으로 만들었다. 이러면 아예 동일한 값도 곱하게 되니 if로 i = j 인 경우 continue를 사용하려 했으나 최대값 구하는 부분도 if가 들어가 i!=j 으로 진행했다.
int answer = 0;
for(int i=0; i < numbers.length; i++){
for(int j=0; j < numbers.length; j++){
if(i != j){
answer= numbers[i]* numbers[j]>=answer ? numbers[i]* numbers[j]:answer;
}
}
}
정답인줄 알았으나 제출 테스트에서 7번 부분에 계속 오류가 발생했다. 코드에는 크게 문제되는 부분이 없는거 같아서 문제명 + 7번 테스트로 찾아보니 배열이 전부 음수인 경우에는 0 이하의 값이 나올 수 있어 오류가 나는 거였다.
최솟값인 10,000 * 10,000 = 100,000,000 이하 값으로 answer를 초기화 해주면 되서 int 최솟값으로 변경하니 해결했다.
int answer = Integer.MIN_VALUE;
for(int i=0; i < numbers.length; i++){
for(int j=0; j < numbers.length; j++){
if(i != j){
answer= numbers[i]* numbers[j]>=answer ? numbers[i]* numbers[j]:answer;
}
}
}
숫자 클래스에 있는 상수값으로 byte, short, long, char 에서도 사용 할 수 있다.
오늘 보안 이슈가 있어 github에 보일 수도 있는 mysql 비밀번호를 변경했다.
참고블로그
mysql이 연동이 되어 있어서 기존 비밀번호 입력후 버전에 맞는 쿼리를 입력하면 된다.
alter user 'root'@'localhost' identified with mysql_native_password by 'new password';
그리고 변경사항 저장하면 끝!
flush privileges;
기존에 연결했던 DB는 인텔리제이에서 알아서 맞춰주는데 application은 수정해줘야 한다.