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
'Algorithm' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 (python, js) (0) | 2021.01.26 |
---|---|
[프로그래머스] 3진법 뒤집기 (JS, Python) (0) | 2021.01.26 |
[프로그래머스] 2016년 (Python, JS) (0) | 2021.01.25 |
[프로그래머스] 두 개 뽑아서 더하기 (JS, Python) (0) | 2021.01.25 |
[프로그래머스] k번째 수 (JS, Python) (0) | 2021.01.24 |
댓글