[프로그래머스] Java 코딩테스트 - 최댓값과 최솟값 (Lv.1)

yihyun·2025년 7월 7일

코딩테스트

목록 보기
93/105
post-thumbnail

최댓값과 최솟값 (Lv.1)

✅ 문제설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

✅ 제한사항

s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

🔽 소스코드 1 (정렬 사용)

시간 7.71ms ~ 9.51ms

  • 문자열 배열(strArr)에 주어진 문자열 s 를 공백으로 구분해 값을 넣어준다.
  • 이후 정수 배열(arr)을 문자열 배열과 같은 크기로 선언해준다.
  • 이후 반복문을 사용해 문자열을 정수로 변환해 arr 에 넣어주고,
  • Arrays.sort() 를 사용해 오름차순으로 정렬한 후
  • 0번 인덱스와 n-1 번 인덱스를 return 해준다.
    ※ 0번은 최소, n-1은 최대값이다.
	public String solution(String s) {
		
		String strArr[] = s.split(" ");

		int[] arr = new int[strArr.length];
		
		for(int i = 0; i < arr.length; i++) {
			arr[i] = Integer.parseInt(strArr[i]);
		}
		
		Arrays.sort(arr);
		

		return arr[0] + " " + arr[arr.length -1];
    }

🔽 소스코드 2 (정렬 미사용)

시간 6.68ms ~ 10.53ms

  • 문자열 배열(strArr) 을 선언해 주어진 문자열 s 를 공백으로 구분해 넣어줍니다.
  • 이후 max , min , n 을 선언해주고, minmax 에는 배열의 0번 인덱스 값을 넣어줍니다.
  • 이후 반복문을 사용해 n 보다 작은 경우 min으로 n 보다 큰 경우 max 로 넣어주며
  • 최종 최대, 최소값을 return합니다.
	public String solution1(String s) {
		
		String strArr[] = s.split(" ");
		
		int max, min, n;
		min = max = Integer.parseInt(strArr[0]);
		
		for(int i = 1; i < strArr.length; i++) {
			n = Integer.parseInt(strArr[i]);
			
			if(min > n) min = n;
			if(max < n) max = n;
		}
		
		return min + " " + max;
	}
profile
개발자가 되어보자

0개의 댓글