카테고리 없음

Java 프로그래머스 코딩테스트 : 최댓값과 최솟값

솔리! 2023. 5. 20. 16:51

<문제>

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

 

 

 

 

[문제 해석]

 

문자열을 공백을 기준으로 분리해서 분리한 문자열을 정수형으로 반환후 최댓값과 최솟값을 구해야한다

 
 

 

문자열로 숫자가 저장되어 있기 때문에 숫자 크기 비교를 하려면 분리해서 정수형으로 반환해줘야한다 s에 있는 문자열을 공백 기준으로 " " 분리해서 정수로 변환한다

 

 

[ split() 함수로 문자열 자르기 ]

String [ ] 잘라서 넣을 새변수 이름 = 자를 변수명.split(" 기준으로 자를 문자 ") ;

 

 

문자열을 정수로 변환하는 것은 아래 링크를 참고해줬다

 

 

https://www.freecodecamp.org/korean/news/java-string-to-int-how-to-convert-a-string-to-an-integer/

 

 

그리고 난뒤는 비교적 간단하다 하던대로 최댓값과 최솟값을 구하면 된다 

numbers의 길이 만큼 for 문을 반복하며 min 으로 초기화 해둔 값보다 작은 값이 있는지 if ( num < min ) , 

max 로 초기화 해둔 값보다 큰 값이 있는지 if ( num > max ) 를 비교한다 

 

 

 


 

 

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] numbers = s.split(" ");
        
        // 문자열을 정수로 변환하여 최소값과 최대값을 초기화
        int min = Integer.parseInt(numbers[0]);
        int max = Integer.parseInt(numbers[0]);
        
        // 최소값과 최대값 갱신
        for (int i = 1; i < numbers.length; i++) {
            int num = Integer.parseInt(numbers[i]);
            if (num < min)
                min = num;
            if (num > max)
                max = num;
        }
        
        // 결과 문자열 생성
        answer = min + " " + max;
        
        return answer;
        
    }
}

 

 

 

 

문제에서 문자열을 공백 기준으로 분리해야 되는 것을 이해하지 못했었다 . . . 아래 풀이를 참고해서 풀 수 있었다 

 

https://tmdrl5779.tistory.com/277

 

special thanks to . .

 

 


 

https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

 

프로그래머스

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

programmers.co.kr