인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

2yujinny님의 프로필 이미지
2yujinny

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

14. 가장 긴 문자열

선생님 안녕하세요! 질문입니다!

작성

·

146

0

강의 초반에 "각 문자열의 길이는 서로 다릅니다"라는 조건이 있으니 그건 염두에 두지 않아도 되는 문제다 라고 하셨는데요!

만약에 "같은 문자열의 길이가 들어올 수 있다"라는 조건이고,  가장 긴 문자열 길이를 가진 것들을 모두 출력하는 문제라고 새롭게 설정해보고자 

입력값 srt에 "beautiful"과 같은 길이인 "wonderful"을 추가해보고 코드를 수정해보았는데요. 

답으로 "beautiful"과 "wonderful"만 나오게 하고 싶은데 "teacher","beautiful","wonderful"  이 세가지가 나오네요 ㅠㅠ 

어떻게 하면 제일 긴 문자열만 중복을 허용해서 출력할 수 있을까요?

 

 function solution(s) {
        let answer = [];
        let max = Number.MIN_SAFE_INTEGER;

        for (let x of s) {
          if (x.length >= max) {
            max = x.length;
            answer.push(x);
          }
        }
        return answer;
      }

      let str = ["teacher", "time", "hell", "wonderful", "beautiful", "good"];
      console.log(solution(str));

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

다시 한 번 for문이 돌아야 합니다.

function solution(s) {

  let answer = [];

  let max = Number.MIN_SAFE_INTEGER;



  for (let x of s) {

    if (x.length > max) {

      max = x.length;

    }

  }
  for (let x of s) {

    if (x.length === max) {

      answer.push(x);

    }

  }


  return answer;

}



let str = ["teacher", "time", "hell", "wonderful", "beautiful", "good"];

console.log(solution(str));
2yujinny님의 프로필 이미지
2yujinny
질문자

앗 감사합니다 선생님 ^^ 강의 늘 잘 듣고 있습니다!

2yujinny님의 프로필 이미지
2yujinny

작성한 질문수

질문하기