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

in #kr-series6 years ago

안녕하세요 오늘은 자바 스크립트 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시네요 다들 좋은 밤되시고 더운데 화이팅입니다!

Sort:  

몇번정도 읽어보면 조금이라도 이해가 될까요?

그렇게 해드리고 싶네요..ㅠ

참 편리한 메소드가 많은것 같네요

문제는 실전에서는 적용하지 못하고 맨날 노가다 하네요 ㅠㅠ

맞아요..저도 일할때는 거의 노가다 작업만 하고 있어요 ㅠㅠ

연재대회 구경왔어요. front-end는 안한지가 오래되었더니 요즘건 이해가 쉽지는 않더라고요. 스팀잇에 간단한 필터를 만들고 싶은데 이게 은근 헤매게 되더라고요. 어차피 많은 분들이 좋은걸 만들어주고 계시고. 앞으로도 좋은 글 부탁할게요!

네!! 저도 스팀잇 api 이용해서 간단히 만들어보려 했는데 어리버리 중이네요..저도 자주 찾아갈께요 좋은 글 부탁드립니다~

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63281.14
ETH 2674.11
USDT 1.00
SBD 2.79