[JAVA] 백준 2562번 : 최댓값

2020. 8. 5. 15:50·Computer Science/자료구조와 알고리즘

1. 문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

 

2.

코드1 (배열 이외의 변수 1개 사용)

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int[] num = new int[9];
        int large_num = 0;
        for(int i=0;i<9;i++){
            num[i]=sc.nextInt();
            if(large_num<num[i]) large_num=num[i];
        }
        System.out.println(large_num);
        for(int i=0;i<9;i++){
            if(large_num==num[i]) System.out.println(i+1);
        }
    }
}

배열을 num을 생성하고 배열에 숫자를 입력하면서 입력한 숫자가 기존의 입력한 배열 숫자보다 큰 경우, large_num에 그 값을 저장한다. 

새로운 반복문을 만들어 large_num과 같은 값을 가지는 배열의 요소의 index를 찾아 1을 더한 값을 출력한다. (배열의 index는 0부터 시작하기 때문) 

 

코드2 ( 반복문 1개 사용) 

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int[] num = new int[9];
        int large_num = 0;
        int index=0;
        for(int i=0;i<9;i++){
            num[i]=sc.nextInt();
            if(large_num<num[i]) {
              large_num=num[i];
              index=i+1;
            }
        }
        System.out.println(large_num);
        System.out.println(index);
        sc.close();
    }
}

코드 1 처럼 배열을 num을 생성하고 배열에 숫자를 입력하면서 입력한 숫자가 기존의 입력한 배열 숫자보다 큰 경우, large_num에 그 값을 저장한다. 그리고 index라는 변수에 해당 인덱스 숫자에 1을 더한 값을 저장한다. 

 

3. 비교

반복문을 하나 덜 사용하면 메모리의 크기와 시간이 줄어들 것이라 생각했는데 4KB만 차이가 나고 시간은 동일했다. 

이유는 간단하다.

빅오표기법에 따르면 코드 1과 코드 2는 동일하기 때문이다. 

 

4. 링크

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글

[JAVA] 백준 3053번 : 나머지  (0) 2020.09.18
[JAVA] 백준 2577번 : 숫자의 개수  (0) 2020.08.10
[JAVA] 10818번 : 최소, 최대  (0) 2020.07.30
[JAVA] 백준 10996번 : 별찍기 - 21  (0) 2020.07.25
[JAVA] 백준 2446번 : 별찍기 -9  (0) 2020.07.25
'Computer Science/자료구조와 알고리즘' 카테고리의 다른 글
  • [JAVA] 백준 3053번 : 나머지
  • [JAVA] 백준 2577번 : 숫자의 개수
  • [JAVA] 10818번 : 최소, 최대
  • [JAVA] 백준 10996번 : 별찍기 - 21
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    런타임 에러
    mysql error
    오블완
    leetcode
    c++error
    LNK2001
    해시
    티스토리챌린지
    cmd error
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 백준 2562번 : 최댓값
상단으로

티스토리툴바