기존 : for문 안에 3개의 표현이 들어간다. -> (초기값 ; 조건문 ; 증가연산 ;)
for(int i = 0; i < 4; i++) {
System.out.println(i + " 번째 출력!");
}
향상된 for문 : 2개로 줄여줌
int[] numbers = {3, 6, 9, 12, 15};
for(int number: numbers) {
System.out.print(number + " ");
}
int[] numbers = {3, 6, 9, 12, 15};
for(int i = 0; i = numbers.length; i++) {
System.out.print(number[i]);
}
최댓값 만들기
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
입출력 예 #1
두 수의 곱중 최댓값은 4 * 5 = 20 입니다.
class Solution {
public int solution(int[] numbers) {
int max = numbers[0];
int prev = 0;
for(int i=1; i<numbers.length; i++){
if(max < numbers[i]){
prev = max;
max = numbers[i];
}else if(prev < numbers[i]){
prev = numbers[i];
}
}
return prev*max;
}
}
처음에는 배열의 모든 값을 곱하여 값을 비교하려 하였으나 비효율적임을 알게되어 한참을 고민하다 for문에 if문을 돌리고 else if를 두어 두번째 큰 값을 찾을 수 있게 되었다. 둘을 곱하여 return 하였다.
'TIL' 카테고리의 다른 글
[계산기 만들기] 계산기를 만들기 2일차 (0) | 2025.01.06 |
---|---|
[계산기 만들기] 계산기 만들기 1일 차, 그리고 생겼던 문제 (1) | 2025.01.03 |
Java의 계층 구조와 알고리즘(분수의 덧셈) 오답 노트 (0) | 2024.12.31 |
KPT 회고 (4MEN Mini Project)와 알고리즘(두 수의 나눗셈) 오답 노트 (0) | 2024.12.30 |
웹페이지 만들기 프로젝트 (2) | 2024.12.27 |