<가장 긴 문자열>
: N개의 문자열이 입력되면 그 중 가장 긴 문자열을 출력하는 프로그램을 작성한다.
- 앞에서 배웠던 내용과 비슷하다. leng만 추가되었을 뿐.
- max라는 변수를 생성하여 Number.MIN_SAFE_INTEGER로 초기화를 해준다.
- for..of문에 if를 넣어, 길이를 비교한다. 만약 x가 더 길면, x.length을 max에 넣어주고(비교해야 하므로), x를 answer에 넣어준다(길이가 아닌 해당 값이 출력되어야 하므로).
<script> //정답 function solution(s){ let answer="", max=Number.MIN_SAFE_INTEGER; for(let x of s){ if(x.length>max){ max=x.length; answer=x; } } return answer; } let str=["teacher", "time", "student", "beautiful", "good"]; console.log(solution(str)); </script>
<script> //내가 짠 코드 function solution(s){ let answer = ""; let min = ""; for ( let i = 0; i < s.length; i ++){ if( s[i].length > min.length ) min = s[i]; answer = min; } return answer; } let str=["teacher", "time", "student", "beautiful", "good"]; console.log(solution(str)); </script>
4. 내 코드와 비교 그리고 반성
- 정답을 맞추긴 하였으나, 변수명을 이상하게 짓고(min이라고 지음, 진짜 바보 인증), 처음에 Number.MIN_SAFE_INTEGER로 초기화를 하긴 하였으나, 그럼 if문에서 어떻게 비교하지라는 생각이 들어 빈문자열로 초기화를 했다. x.length > max.length 이런 식으로 생각했다. max는 길이가 아닌 값으로 비교하였어야 했는데. Number.MIN_SAFE_INTEGER(-900719925...)보다 작은 값은 절대 들어올 수 없으니까.