[프로그래머스/JS/JAVA] 최댓값과 최솟값

코린·2023년 5월 4일
0

알고리즘

목록 보기
12/44
post-thumbnail

문제 설명

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

제한 조건

s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

입출력 예

sreturn
"1 2 3 4""1 4"
"-1 -2 -3 -4""-4 -1"
"-1 -1""-1 -1"

 

문제풀이

자바스크립트에서는 간단한 문제입니두앗!

우선 문자열 분리부터 해야겠져..?

그래서 문자열 분리 함수들부터 알아보고 가겠습니다.

split

.split('구분자',limit)

1) 구분자를 주고 limit을 주지않을 경우
문자열을 구분자로 분리하고 배열에 담아 리턴합니다.

2) 구분자와 limit을 모두 인자로 전달할 경우
limit은 구분자로 분리할 문자열의 개수가 됩니다. 예로 1을 전달하면 구분자로 1개의 문자열만 잘라서 배열로 리턴합니다.

3) 아무것도 인자로 주지않을 경우

인자로 아무것도 전달하지 않으면 문자열 전체를 배열에 담아 리턴합니다. 길이가 1인 배열이 됩니다.

substr()

특정 Index에서 원하는 길이만큼 잘라서 문자열로 리턴

substring()

시작 Index에서 끝 Index 전까지 문자열을 잘라서 리턴

slice()

substring과 비슷하지만 살짝 다른 메소드

저는 이중에서 split을 선택했습니다. 공백을 기준으로 문자열을 구분지어야 했기 때문이죵

글고 문자열을 분리하고 받았으니 이제 최댓값을 구해조야겠죠??
근데 이 자바스크립트에는 Math.max()와 Math.min() 이라는 효자들이 있습니다.

근데 제가 이걸 그냥

function solution(s) {
    var answer = '';
    
    let a = s.split(' ');
    
    answer+=Math.min(a);
    answer+=' ';
    answer+=Math.max(a);
    
    return answer;
}

이렇게 했더니 answer에 아무값도 안들어가는거 있져..?

네 맞아요 저는 바보였어요

각각 값들을 모두 넣어줘서 비교해자나요???

그래서 전개연산자를 사용해서 변경했답미다!

function solution(s) {
    var answer = '';
    
    let a = s.split(' ');
    
    answer+=Math.min(...a);
    answer+=' ';
    answer+=Math.max(...a);
    
    return answer;
}

Java 문제풀이

java는 반복문써서 풀어줬습니다.

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] a = s.split(" ");
        
        int max,min,tmp;
        max=min=tmp= Integer.parseInt(a[0]);
        
        for(int i=1;i<a.length;i++){
            
            tmp = Integer.parseInt(a[i]);
            
            if(max < tmp) max=tmp;
            if(min > tmp) min=tmp;
            
        }
        
        answer=min + " " + max;
        
        return answer;
    }
}

참고

JS 문자열 자르는 함수

JS 최대 최소 구하는 메소드

Java 문자열 자르기

profile
안녕하세요 코린입니다!

0개의 댓글