반응형
최댓값과 최솟값
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
예시
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
코드 해석 및 전체 코드
방법 1
1. split 메소드를 사용하여 공백을 기준으로 문자열 자르기
2. for문을 반복하여 최솟값과 최댓값 찾기
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] num = s.split(" ");
int min, max;
// 초기값으로 배열 첫번째 요소를 넣어줌
min = max = Integer.parseInt(num[0]);
for (int i = 0; i < num.length; i++) {
int n = Integer.parseInt(num[i]); // String형을 int형으로 형변환
if (min > n)
min = n;
else if (max < n)
max = n;
}
answer += min + " " + max;
return answer;
}
}
방법 2
1. split 메소드를 사용하여 공백을 기준으로 문자열 자르기
2. int형 배열 선언하여 1에서 자른 문자열 배열 복사
3. 배열 정렬
4. 최솟값 : intNum[0], 최댓값 intNum[intNum.length -1]
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] num = s.split(" ");
// int형 배열 선언
int intNum[] = new int[num.length];
// String형 배열 int형 배열에 복사
for (int i = 0; i < num.length; i++)
intNum[i] = Integer.parseInt(num[i]);
// 배열 정렬
Arrays.sort(intNum);
answer += intNum[0] + " " + intNum[intNum.length - 1];
return answer;
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[Programmers/JAVA] 다음 큰 숫자 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.27 |
---|---|
[Programmers/JAVA] 숫자의 표현 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.26 |
[Programmers/JAVA] 최솟값 만들기 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.24 |
[Programmers/JAVA] 행렬의 곱셈 / 프로그래머스 코딩 테스트 연습 (1) | 2021.12.23 |
[Programmers/JAVA] 피보나치 수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.22 |
댓글