알고리즘문제

가운데 글자 가져오기

단점이없어지고싶은개발자 2021. 5. 16. 03:09
반응형

 

s라는 글자를 반환하는 함수다 여기서 키워드는 길이를 가져오는 것과 그 길이가 짝수라면 2글자, 홀수라면 가운데 1글자를 가져와야 된다.

 

길이를 반환하는 건 length를 이용해줬다.

if(s.length % 2 != 0) // if문을 먼저 넣어줘서 s의 길이가 2로 나눴을 때 나머지가 0이 아니라면, 즉 홀수라면

 

return (s.substr(s.length/2, 1); // 여기서 어떤 함수를 넣어줘야되나 고민했다. slice를 처음에 생각했다가 문자열을 자르는 함수를 검색 도중에 substr이 눈에 들어왔다.

substr(시작index, 길이)로 문자열을 잘라서 넣을 수 있었다. 

substring도 비슷하지만 다른점은 substr에 시작 index -1을 먼저 넣으면 뒤에서부터 찾을 수 있고 그 길이를 설정해서 맨 뒤에서부터 반환할 수 있다.

 

여기서 좀 헷갈렸던 부분이 길이를 2로 나누면 abcde라면 2.5가 된다. 그래서 이게 실수가 되면 반올림이 되나, 반올림이 안되나가 좀 헷갈렸고, 만약 2가 된다면 index이기에 c가 된다. 그리고 뒤에 길이 1만큼 넣어주면 c가 입력되서 케이스와 올바르게 나온다.

 

그 다음은 else 를 써줘서 

else

return (s.substr/2-1, 2)를 해줬다. qwer을 2로 나누면 2가 된다. 그러나 index가 2면 e가 된다 그러나 우리가 구해줘야할 값은 we다. 그러면 index를 -1해주면 we가 되고, 길이를 2로해서 we까지 구하면 답이 나온다. 

반응형

'알고리즘문제' 카테고리의 다른 글

프로그래머스 - 행렬의 덧셈  (0) 2021.09.20
프로그래머스 - 문자열 내림차순으로 배치하기  (0) 2021.09.10
수박수박수 문제  (0) 2021.05.17
김서방 찾기  (0) 2021.05.15
Codeup 1045문제  (0) 2021.04.28