알고리즘/코딩테스트 공부

1-15 가운데 문자 출력

YG - 96년생 , 강아지 있음, 개발자 희망 2021. 11. 24. 23:00

문제

소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세
요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.

풀이

function solution(s) {
  let answer = "";
  let num = s.length;
  if (num % 2 === 0) {
    answer += s[num / 2 - 1];
    answer += s[num / 2];
  } else if (num % 2 === 1) {
    console.log(s[2]);
    answer += s[Math.floor(num / 2)];
  }
  return answer;
}
console.log(solution("stud"));

answer +=  s[인덱스] 로 풀었습니다

다른풀이

function solution(s) {
  let answer = "";
  let mid = Math.floor(s.length / 2);
  //console.log(mid);
  if (s.length % 2 === 1) {
    answer = s.substring(mid, mid + 1);
  } else if (s.length % 2 === 0) {
    answer = s.substring(mid - 1, mid + 1);
  }
  return answer;
}
console.log(solution("stud"));

substring() 을 이용하여 풀었습니다.

substring()

substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring

 

String.prototype.substring() - JavaScript | MDN

substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

developer.mozilla.org

다른풀이

function solution(s) {
  let answer = "";
  let mid = Math.floor(s.length / 2);
  //console.log(mid);
  if (s.length % 2 === 1) {
    answer = s.substr(mid, 1);
  } else if (s.length % 2 === 0) {
    answer = s.substr(mid - 1, 2);
  }
  return answer;
}
console.log(solution("study"));

substr 을 이용하여 풀었습니다

 

substr() 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다

 

MDN 에서는 권장하지 않는 방법이라고 합니다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr

 

String.prototype.substr() - JavaScript | MDN

substr() 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.

developer.mozilla.org