◇ 문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
◇ 제한 조건
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
◇ 입출력 예시
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
◇ 초기 내용
※ [출처] 프로그래머스-코딩테스트 연습-문제명
※ 초기 내용을 참고하여 문제에 맞는 코드를 작성하세요.
class Solution {
public String solution(String s) {
String answer = "";
return answer;
}
}
◇ 풀이 과정
문제의 풀이과정은 이러했다.
- 띄워쓰기를 제외한 문자열을 각 문자별로 배열에 저장한다.
- 문자열 배열에 들어간 문자열 요소를 int형으로 변환한다. (최댓값과 최솟값을 구하기 위해서)
- int형 배열에서 max값과 min값을 구한 후 변수에 저장한다.
- answer에 min + " " + max 형태의 문자열로 저장 후 반환한다.
◇ 참고 사항
첫번째, splite
- 문자열 관련 메서드로 문자열.splite(기준문자)의 형태로 사용된다.
- splite메서드의 매개변수인 문자를 기준으로 문자열을 나누어 배열에 저장한다.
- <예시>
//기준문자 "-"를 기준으로 문자열을 분리하여 str배열에 각각 010, 1234, 5678을 저장
String str[] = "010-1234-5678".split("-");
for(int i = 0; i<str.length; i++){
System.out.println(str[i]);
} - <출력결과>
010
1234
5678
두번째, Integer.parseInt
- 매개변수로 받은 문자열을 int형으로 변환하여 반환하는 메서드
- Integer.parseInt(문자열)
Integer.parseInt(문자열, 변환할 진수값) 과 같이 사용한다. - 만약, Integer.parseInt의 매개변수 문자열에 int형으로 변환할 수 없는 값이 포함되어있다면 java.lang.NumberFormatException 에러가 발생한다.
◇ 답안
더보기
더보기
class Solution {
public String solution(String s) {
String answer = "";
//s문자열을 띄워쓰기를 기준으로 잘라서 str배열에 저장
String[] str = s.split(" ");
// 문자열이 str배열의 각 요소로 잘 저장되었는지 확인(출력)
// for(int i = 0; i<nArr.length; i++){
// System.out.println(nArr[i]);
// }
//str의 문자배열을 int형으로 저장할 int형 배열 선언
int nArr[] = new int[str.length];
//str배열의 문자형 요소를 int형으로 변환하여 nArr배열에 저장
for(int i = 0; i<str.length; i++){
nArr[i] = Integer.parseInt(str[i]);
}
// int형으로 값이 잘 저장되었는지 확인(출력)
// for(int i = 0; i<nArr.length; i++){
// System.out.println(nArr[i]);
// }
//최대값과 최소값을 저장할 int형 변수 max, min 선언
int max = nArr[0], min = nArr[0];
//nArr배열 중 최대값과 최솟값 구하기
for(int i = 0; i<nArr.length; i++){
if(nArr[i]>max){
max = nArr[i];
}
if(nArr[i]<min){
min = nArr[i];
}
}
//최대값과 최솟값 확인을 위한 출력
//System.out.println(max);
//System.out.println(min);
//answer에 "최솟값 최대값"으로 값 저장
answer = min + " " + max;
return answer;
}
}
◇ 실행결과
◇ 출처
https://programmers.co.kr/learn/challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
'코딩테스트 > Java' 카테고리의 다른 글
[Level2] 다음 큰 숫자 답안 및 풀이 (0) | 2021.12.27 |
---|---|
[Level2] 숫자의 표현 답안 및 풀이 (0) | 2021.12.26 |
[Level2] 최솟값 만들기 답안 및 풀이 (0) | 2021.12.24 |
[Level2] 행렬의 곱셈 답안 및 풀이 (0) | 2021.12.23 |
[Level2] 피보나치 수 답안 및 풀이 (0) | 2021.12.22 |
댓글