-
[TIL] 21/01/18 알고리즘 풀이IT 지식 2021. 1. 18. 11:34728x90
오늘의 문제 - 프로그래머스 '가운데 글자 가져오기'
문제 소개
더보기가운데 글자 가져오기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
sreturn
abcde c qwer we 나의 풀이
초기 풀이
더보기function solution(s) { var answer = ''; //단어를 추출하기 위해 단어를 하나하나 쪼개야 한다고 생각했습니다. let answerArr = []; s = s.split('') //그리고 가운데 글자의 위치를 파악하기 위해 중간 지점의 숫자도 설정해주었습니다. var n = parseInt((s.length - 1) / 2) if(s.length % 2 === 1) { answerArr = answerArr.concat(s[n]) return answer = answerArr.pop() } else { answerArr = answerArr.concat(s[n], s[n+1]) return answer = answerArr.join('') } return answer; }
리팩토링 후 풀이
더보기function solution(s) { var answer = ''; let answerArr = []; s = s.split('') var n = parseInt((s.length - 1) / 2) //위의 if 문을 삼항연산자를 활용하여 한줄로 만들어 주었습니다. answer = s.length % 2 === 1 ? answerArr.concat(s[n]).pop() : answerArr.concat(s[n], s[n+1]).join('') return answer; }
다른 분의 풀이
더보기function solution(s) { return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1); } //출처: https://programmers.co.kr/learn/courses/30/lessons/12903/solution_groups?language=javascript&type=all
후기
단어를 하나하나 쪼개야 한다고 생각해서, string의 기본 문법을 활용하기 보다는 arr를 통한 접근을 시도해보았습니다. 하지만 이는 결과적으로 정답에 우회해서 접근하는 길이었습니다. string의 기본 메서드를 활용하여 문제를 푸는 방식도 연습해봐야겠습니다.
728x90'IT 지식' 카테고리의 다른 글
웹 접근성에 대해 (0) 2021.02.07 [TIL] 21/01/19 알고리즘 풀이 (0) 2021.01.19 [TIL] 21/01/15 알고리즘 풀이 (0) 2021.01.15 [TIL] 21/01/12 알고리즘 풀이 (0) 2021.01.12 새해 맞이 2020 개발 트렌드 돌아보기 - 가장 많이 사용한 협업툴, 연봉순위 등 (0) 2021.01.06