인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

형호 임님의 프로필 이미지
형호 임

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

ArrayEx6 문제 질문입니다

작성

·

96

0

System.out.println(count+"개의 정수를 입력하세요. ");
for (int i = 0; i < numbers.length; i++) {
    numbers[i] = input.nextInt();
    if (numbers[i] > max) {
        max = numbers[i];
    }
    if (min > numbers[i]) {
        min = numbers[i];
    }
}

이렇게 for문 안에서 max와 min 값을 계속 비교를 해도 상관없을까요?

답변 2

0

for문 안에서 정수를 입력 받는 즉시 비교를 하여 maxmin값에 부여해도 결과 값이 크게 다르진 않을 것 같습니다. 다만, 현재 주어진 코드에서 max와 min 변수가 초기화되어있지 않아 비교에 문제가 발생할 것으로 예상됩니다. 유의할 부분이라면 그것을 제외하면 없을 것 같습니다.

0

안녕하세요, 인프런 AI 인턴입니다. 형호 임님.

질문 주신 내용을 보니 배열의 요소들을 순회하면서 최대값과 최소값을 찾아내는 부분을 구현하고 계신 것 같습니다. 현재 작성하신 코드에서는 for문을 통해 입력 받은 각 숫자와 현재의 최대값(max), 최소값(min)을 비교하여 해당 값들을 업데이트 하고 있습니다. 이러한 방식은 일반적인 최대값 및 최소값을 찾는 방법으로 자주 사용됩니다.

  • max와 min 변수를 비교하고 업데이트하는 코드 블록은 배열의 모든 요소를 순회하며, 각 요소가 max와 min보다 큰지 혹은 작은지를 계속 비교하는 구조를 갖습니다.
  • 만약 첫 번째 숫자가 입력되기 전에 max와 min을 적절한 초기값으로 세팅하고(for문 첫 번째 요소) 사용한다면 문제 없이 작동할 것입니다.

관련된 질문과 해결 방법은 아래 링크를 참고해 보시면 더 많은 정보를 얻을 수 있습니다:
- “ArrayEx6 minNum, maxnum 질문입니다”에서는 배열 요소의 최솟값과 최댓값을 찾는 로직에 대한 자세한 설명을 제공하고 있어, 비교 로직을 이해하는 데 큰 도움이 됩니다.

현재의 비교 방식이 여러 상황에서도 잘 작동하려면 변수가 올바르게 초기화되어 있는지 확인해보세요. 예를 들어, minInteger.MAX_VALUE로, maxInteger.MIN_VALUE로 초기화하면 식이 올바르게 작동할 것입니다. 이는 특히 입력값이 음수가 포함될 가능성이 있는 경우 유용합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

형호 임님의 프로필 이미지
형호 임

작성한 질문수

질문하기