[LeetCode] 2309. Greatest English Letter in Upper and Lower Case

HyeLin·2023년 2월 24일
1
post-thumbnail

영어 문자가 주어지면 소문자와 대문자로 표시되는 가장 큰 영어 문자를 반환합니다. 답은 대문자여야 합니다. 해당 문자가 없으면 빈 문자열을 반환합니다.
ex) "arRAzFif" => "R"
A,F,R이 있지만 R이 A와 F보다 크기때문에 R 반환
ex) "AbCdEfGhIjK" => ""

✨ 풀이

var greatestLetter = function(s) {
  let arr=[]
    
  for(let i=0;i<s.length;i++){
    const upper=s[i].toUpperCase()
    const lower=s[i].toLowerCase()
    
    if(s[i] === upper){
      if(s.includes(lower))
      {
        arr.push(upper)
      }
    }
    }
  
  const sortArr=arr.sort((a,b)=> b.charCodeAt()-a.charCodeAt())

  return arr.length == 0 ? "" : sortArr[0] 
};

✨ 해석

 for(let i=0;i<s.length;i++){
    const upper=s[i].toUpperCase()
    const lower=s[i].toLowerCase()
    
    if(s[i] === upper){
      if(s.includes(lower))
      {
        arr.push(upper)
      }
    }
    }
  • 반복문을 돌면서 대문자와 같은 글자가 있고, 원래 배열에 그 값의 소문자가 포함되어 있다면? 그 값의 대문자를 빈배열에 넣어준다.
  const sortArr=arr.sort((a,b)=> b.charCodeAt()-a.charCodeAt())
  • 알파벳의 아스키코드 번호로 변환시킨 값을 내림차순으로 새 배열에 넣어준다.
return arr.length == 0 ? "" : sortArr[0] 
  • 배열에 아무 값도 없다면 빈 값 return, 아니면 새 배열의 첫번째 값 즉, 가장 큰 값을 return
profile
개발자

0개의 댓글