본문 바로가기
Algorithm

[프로그래머스] 가운데 글자 가져오기 (JS, Python)

by YGSEO 2021. 1. 25.
728x90

JS

 

이게 간결한 솔루션이지만

여기서 floor를 사용하다보니 틀리는데 이유는,

0.5로 나오는 mid index를 floor를 써버리면 짝수가 되버리기 때문에 무의미한 조건문이 되어버린다.

 

문제의 핵심은 substr를 사용해서 string을 올바르게 인덱싱하는 것인데, mid index 짝/홀 구분에서 틀림.

function solution(s) {
    return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}

며칠전(?)에 배웠던 "?" 오퍼레이터도 이 솔루션에 substr으로 사용 가능하다는 점.

 

substr VS. substring

str.substr(시작 인덱스, 추출 갯수)
str.substring(시작 인덱스번호, 끝 인덱스번호)

var str= "ABCDEFGH";
var str_substr = str.substr(1,4); // 1번 인덱스부터 4개의 문자를 추출하라!
var str_substring = str.substring(1,4); // 1번 인덱스부터 4번 인덱스까지 추출하라!

console.log(str_substr); // BCDE
console.log(str_substring); // BCD

Python

import math
def solution(s):
    idx = math.ceil(len(s)/2)-1
    if len(s) % 2 == 0:
        return s[idx:idx+2]
    else:
        return s[idx]
    

 

728x90

댓글