[javascript #7] 최대값과 최소값

안녕하세요 오늘은 자바 스크립트 7번째 시간입니다~오늘은 집에 와서 뒹구르르 하다가 이제야 글을 쓰게 되네요..(내일 출근은..??) 오늘은 제목에서 써있지만 최대값과 최소값을 구하는 문제를 가져왔습니다~그리 어려운 문제가 아니니깐 차분히 설명하여 글을 써보겠습니다
문제 나갑니다~

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



네 문제를 보니 문자열 s는 숫자를 공백으로 여러가지 숫자를 가지고 있다고 하네요 예를 들어
"1 2 3" 이나 "11 12 13" 뭐 이렇게 가지고 있다고 합니다. 안에 있는 숫자중에 최소값과 최대값을 찾아서 구하는 문제입니다 문자열 자체로 최소값 최대값을 가져올수 없으니! 전 여기서 공백을 기준으로 배열로 변경을 해복겠습니다
문자열이 s라면 s.split(" "); 이렇게 말이죠~ "1 2".split(" "); 을 실행하면 ['1','2'] 이렇게 나온답니다
split는 문자열을 배열로 변신!! 외워 두세요


배열로 변경한다고 최소값 최대값을 바로 구할순 없겠죠? 여기서 사용할 메소드는 sort() 입니다
sort()는 문자를 ASCII 문자 오름차순으로 정렬한다. 음..어려우시죠? ASCII 이건 넘어가시고!
여기서 중요한건 sort()는 ASCII 문자를 기준으로 정렬을 한다는거죠. 저희가 원하는건 숫자 정렬을 해서 가장 앞에 숫자와 가장 뒤의 숫자를 가져오고 싶은데!! 이럴땐 sort()를 조금 변형하여
"2 3 1".sort(function(a, b) { return a - b; }); -> ['1','2','3'] 이렇게 이쁘게 나온답니다.
그럼 코드를 작성해보겠습니다

function solution(s) {
    var answer = '';
    var sArray = s.split(" ").sort(function(a,b){
        return a - b;});
    return answer = sArray[0]+" "+sArray[sArray.length -1];
}



sArray 라는 변수는 위의 설명한대로 배열 오름차순으로 변환하였습니다
그리고 문제에서 원하는 answer 값은 최소값+공백+최대값 으로 이루어지는 문자열이기때문에
문자열을 만들어서 answer를 return 하였습니다
위에서 설명했지만 여기서 중요한건 숫자 오름차순 정렬입니다 sort(); 메소드 꼭 외워두시고
자주 사용해주세요~
벌써 새벽 1시네요 다들 좋은 밤되시고 더운데 화이팅입니다!

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
6 Comments