Algorithm/Java

프로그래머스 - 최댓값과 최솟값 JAVA

고고마코드 2022. 8. 1. 14:14
반응형
12939

코딩테스트 연습 - 최댓값과 최솟값 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


풀이

각 숫자들은 문자열 내에서 공백으로 구분되어 있습니다. ex) "1 2 -3 4"

 

📌공백으로 구분된 숫자를 가져와야 합니다.

 

📌각 숫자를 비교해 최솟값, 최댓값을 찾아야 합니다.

 

📝코드1

class Solution {
  public String solution(String s) {
		String[] sArr = s.split(" ");		
		
		int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
		for(String str : sArr) {
			int num = Integer.parseInt(str);
			if(min > num) min = num;
			if(max < num) max = num;
		}
		
		return min + " " + max;
	}
}

 

🎈공백으로 구분된 숫자를 배열에 담아요.

 

🎈최솟값, 최댓값 구하기

배열에 구분된 숫자를 가져옵니다. 단, 저장된 숫자의 타입은 String이므로 int 타입으로 변환해야 합니다.

변환 후 조건에 따라 최솟값, 최댓값을 구합니다.

 

⚡정확성 테스트

테스트 1 통과 (7.18ms, 78.3MB)
테스트 2 통과 (7.20ms, 80.2MB)
테스트 3 통과 (6.97ms, 75.5MB)
테스트 4 통과 (7.14ms, 68.2MB)
테스트 5 통과 (7.32ms, 76.7MB)
테스트 6 통과 (7.01ms, 71MB)
테스트 7 통과 (6.91ms, 79MB)
테스트 8 통과 (7.07ms, 71MB)
테스트 9 통과 (7.05ms, 76.7MB)
테스트 10 통과 (8.88ms, 79.5MB)
테스트 11 통과 (7.20ms, 73.7MB)
테스트 12 통과 (8.84ms, 75.8MB)

 

📝코드2

public class Solution {
	public String solution(String s) {
		String[] sArr = s.split(" ");
		int[] iArr = new int[sArr.length];
		for (int i = 0; i < sArr.length; i++) { iArr[i] = Integer.parseInt(sArr[i]); }

		Arrays.sort(iArr);

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

핵심 원리는 같습니다만,

배열 자체를 int형 배열로 만들고 모든 수를 int형으로 변환해 배열에 저장합니다.

 

이후 배열을 정렬하면 첫 번째 수와 마지막 수가 최솟값, 최댓값이 됩니다.

 

⚡정확성 테스트

테스트 1 통과 (9.88ms, 81.2MB)
테스트 2 통과 (9.17ms, 67.5MB)
테스트 3 통과 (14.13ms, 76.9MB)
테스트 4 통과 (14.71ms, 80MB)
테스트 5 통과 (7.46ms, 73.8MB)
테스트 6 통과 (11.58ms, 72.6MB)
테스트 7 통과 (7.33ms, 77.2MB)
테스트 8 통과 (11.07ms, 83.4MB)
테스트 9 통과 (8.47ms, 78MB)
테스트 10 통과 (9.05ms, 74MB)
테스트 11 통과 (9.27ms, 80.4MB)
테스트 12 통과 (7.88ms, 74.7MB)

 

반응형