강의로 돌아가기
크크세스

채점시 사용한 테스트케이스 2번의 입력이 궁굼합니다.

js로 채점 시 해당 2번케이스에서만 에러가 나는데 입력값을 모르니 해결방안을 찾지 못하고있네요; 입력값에 대한 정보를 알수 있는 방법은 없을까요?

  • tjswls5000
    저도 같은 처지라 꼭 알고싶네요ㅜㅜ tjswls5000 2018.09.30 23:38
  • 경명호
    혹시 아직 답을 못 찾고 계신 거라면 알려드리겠습니다. 아마 JS 로 푸셨기에 sort() 함수를 사용하셨을 텐데 sort() 함수는 문자열을 정렬할 때 쓰는 함수 입니다. 즉 이런 뜻이 되는거죠 "35"와 "100" 을 비교할 때 "3"은 "1" 보다 큰 문자열이므로 정렬에서는 "35" 를 우위에 둡니다. 즉 이럴 때 해결 방법이 무엇이냐 비교 함수를 넣어주면 됩니다 이렇게 말이죠 sort(function(a, b){return a - b}) 이렇게 sort를 변경해 주면 해결 되실겁니다. 아 람다식으로 바꾸셔도 상관 없습니다. 이렇게 말이죠 sort((a, b) = > a - b) 그럼 이만! 경명호 2018.10.02 14:39
1 개의 답변
경명호

혹시 아직 답을 못 찾고 계신 거라면 알려드리겠습니다. 아마 JS 로 푸셨기에 sort() 함수를 사용하셨을 텐데 sort() 함수는 문자열을 정렬할 때 쓰는 함수 입니다. 즉 이런 뜻이 되는거죠 35100 을 비교할 때 31 보다 큰 문자열이므로 정렬에서는 35 를 우위에 둡니다. 즉 이럴 때 해결 방법이 무엇이냐 비교 함수를 넣어주면 됩니다 이렇게 말이죠 sort(function(a, b){return a - b}) 이렇게 sort를 변경해 주면 해결 되실겁니다. 아 람다식으로 바꾸셔도 상관 없습니다. 이렇게 말이죠 sort((a, b) = > a - b) 그럼 이만!

  • 조영진
    array와 commands 모두 자료형이 Number여서 100 > 35 의 결과는 true로 나옵니다. 이 문제에서는 말씀하신 것과 다른 경우입니다. 조영진 2018.10.02 21:25
  • 경명호
    음...제가 이렇게 바꾸었더니 해결되었습니다. JS 기준인데 혹시 다른 언어와 헷갈리신게 아닌지... 경명호 2018.10.03 21:50
  • 이용준
    js에서 100 > 35는 맞지만, sort()의 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따르기 때문에 100 < 35가됩니다. 이용준 2018.10.10 22:52
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.