티스토리 뷰

💻JAVA 코드 바로보기

 

 

 

문제 설명

문자열 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"

 

 


🌼 JAVA 알고리즘

 

초기화면

 

 

 

 

 

 

풀이과정

매개변수로 받아온 String배열을 공백을 기준으로 split한 후,
split된 결과를 오름차순으로 정렬하여 0번방과 length-1번방을 연결하면 해결되는 간단한 문제이다.

다만 int를 기준으로 정렬해야 하기 때문에, split된 배열을 int형 배열로 복사하는 과정을 추가했다.

 

 

 

 

 

1단계
공백을 기준으로 분할하고, int형 배열로 값을 복사한다.
//분할
String[] splited = s.split(" ");
int[] numbers = new int[splited.length];
for(int i=0;i<numbers.length;i++){
	numbers[i] = Integer.parseInt(splited[i]);
}

 

 

 

2단계
int형 배열을 선택정렬한다.
//정렬
for(int i=0;i<numbers.length;i++){
	int min = i;
	for(int j=i+1;j<numbers.length;j++){
		if(numbers[j]<numbers[min]) min = j;
	}
	int temp = numbers[min];
	numbers[min] = numbers[i];
	numbers[i] = temp;
}

 

 

 

 

완성코드

class Solution {
    public String solution(String s) {
        String answer = "";
        
        //분할
        String[] splited = s.split(" ");
        int[] numbers = new int[splited.length];
        for(int i=0;i<numbers.length;i++){
            numbers[i] = Integer.parseInt(splited[i]);
        }
        //정렬
        for(int i=0;i<numbers.length;i++){
            int min = i;
            for(int j=i+1;j<numbers.length;j++){
                if(numbers[j]<numbers[min]) min = j;
            }
            int temp = numbers[min];
            numbers[min] = numbers[i];
            numbers[i] = temp;
        }
        answer = numbers[0]+" "+numbers[numbers.length-1];
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 


링크

 

About Me

💻GitHub/KimSky904 KimSky904 - Overview Department of New Media Software. KimSky904 has 8 repositories available. Follow their code on GitHub. github.com

code-review.tistory.com

 

코딩테스트 연습 - 최댓값과 최솟값

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

programmers.co.kr

 

댓글