TIL)23.08.03(알고리즘_최댓값 만들기 (2) + mysql pwd)

주민·2023년 8월 3일
0

TIL

목록 보기
53/84

프로그래머스의 "최댓값 만들기 (2)" 문제

문제

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

입출력 예

numbersresult
[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;
		}
	}
}

알게된 점

  • int : -2,147,483,648 ~ 2,147,483,647
  • Integer.MIN_VALUE : -2,147,483,648
  • Integer.MAX_VALUE : 2,147,483,647

숫자 클래스에 있는 상수값으로 byte, short, long, char 에서도 사용 할 수 있다.

  • Byte : -128 ~ 127
  • Short : -32768 ~ 32767
  • Long : -9223372036854775808 ~ 9223372036854775807
  • Char : 0 ~ 65535

mysql 비밀번호 변경

오늘 보안 이슈가 있어 github에 보일 수도 있는 mysql 비밀번호를 변경했다.
참고블로그

mysql이 연동이 되어 있어서 기존 비밀번호 입력후 버전에 맞는 쿼리를 입력하면 된다.

alter user 'root'@'localhost' identified with mysql_native_password by 'new password';
  • root : user
  • new password : 바꿀 pwd

그리고 변경사항 저장하면 끝!

flush privileges;

기존에 연결했던 DB는 인텔리제이에서 알아서 맞춰주는데 application은 수정해줘야 한다.

0개의 댓글

관련 채용 정보