알고리즘_가운데 글자 가져오기

정재연·2022년 1월 20일
0

알고리즘

목록 보기
15/23
post-custom-banner

가운데 글자 가져오기

1.문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

2.재한사항

s는 길이가 1 이상, 100이하인 스트링입니다.

3.입출력 예

sreturn
"abcde""c"
"qwer""we"

4. 나의 문제 풀이

1. s의 length가 짝수인지 홀수 인지 구별
2. 짝수이면 slice()를 이용하여 가운데 두 글자 반환
3. 홀수이면 Math.floor() 이용하여 가운데 글자 반환
4. 삼항연산자 사용
function solution(s) {
    var answer = '';
    let half = Math.floor(s.length / 2);
    return (s.length % 2 === 0)? s.slice(half-1,half+1):s[half]
}
  1. s % 2 === 0 으로 홀,짝 구분을 했다.
  2. s가 짝수 일때,
    "asdf" 가운데 두 글자를 slice를 이용해서 sd를 잘라내려고 한다.
    index 1,2 가 필요
    s.length / 2 값을 이용해서 index를 가지고 왔다.
    slice는 두번째 인자로 들어오는 index 앞의 숫자까지 반환하는 특징이 있다.
    slice에 넣어 줄 1번 인자를 s.length의 절반값에서 -1, 2번 인자는 s.length의 절반값에서 +1 해주어 적용 해 줬다.
slice(s.length /2 -1,s.length+1)

  • slice()
// index 범위 지정
'abcdef'.slice(1,3)		// bc
[1,2,3,4,5,6].slice(1,3)	// [ 2, 3 ]

// -index를 이용한 경우
'abcdef'.slice(-4)		// cdef
[1,2,3,4,5,6].slice(-4)		// [ 3, 4, 5, 6 ]

  1. s가 홀수 일때.
    s.length / 2를 하게 되면 소숫점이 나오기 때문에 자연수로 변경해줘야 했다.
    ex) 5 / 2 = 2.5
    길이가 5이면 index 2가 필요 하기 때문에 내림한 숫자가 필요하다.
    Math.floor()를 사용하여 내림 값을 주었다.

  • Math.floor()
    파라미터에들어간 숫자를 내림한 결과값을 반환해주는 매서드 입니다.
	// 내림
    Math.floor(1)		// 1
    Math.floor(1.3)		// 1
    Math.floor(1.8)		// 1

	// 올림
    Math.ceil(1)		// 1
    Math.ceil(1.3)		// 2
    Math.ceil(1.8)		// 2

	// 반올림
    Math.round(1)		// 1
    Math.round(1.3)		// 1
    Math.round(1.8)		// 2

profile
코린이 개발자 :)
post-custom-banner

0개의 댓글