-
#AIL_23.12.07 // Programmers_가운데 글자 가져오기AIL( Algorithm I Learned) 2023. 12. 7. 23:45
## AIL_ 가운데 글자 가져오기
***문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
***제한사항
s는 길이가 1 이상, 100이하인 스트링입니다.
***입출력 예
s return "abcde" "c" "qwer" "we"
## solution.JavaScript
1. 문제의 접근 방식
주어진 문제는 문자열 `s`의 가운데 글자 또는 가운데 두 글자를 반환하는 것입니다. 문자열의 길이가 홀수이면 정확한 가운데 글자를, 짝수이면 가운데 두 글자를 반환해야 합니다.
2. 문제풀이
function solution(s) { var answer = ''; var length = s.length; if(length % 2 == 0){ answer = s[length/2-1] + s[length/2] }else{ answer = s[length/2-0.5] } return answer; } /* 테스트 1 입력값 〉 "abcde" 기댓값 〉 "c" 실행 결과 〉 테스트를 통과하였습니다. 테스트 2 입력값 〉 "qwer" 기댓값 〉 "we" 실행 결과 〉 테스트를 통과하였습니다. */
1. `s.length / 2`를 통해 문자열 `s`의 중간 인덱스를 구합니다.
2. `Math.ceil`을 사용하여 올림을 수행하고, `-1`을 해서 홀수 길이의 문자열에 정확한 중간 인덱스를 얻습니다.
3. `Math.floor`를 사용하여 내림을 수행하고, `+1`을 해서 짝수 길이의 문자열에 정확한 중간 인덱스를 얻습니다.
4. `s.substring(start, end)`를 사용하여 문자열을 잘라내어 반환합니다.
3. 다른사람의 문제풀이 및 접근방식 분석
function solution(s) { return s.substring(Math.ceil(s.length / 2) - 1, Math.floor(s.length / 2) + 1); } /* 테스트 1 입력값 〉 "abcde" 기댓값 〉 "c" 실행 결과 〉 테스트를 통과하였습니다. 테스트 2 입력값 〉 "qwer" 기댓값 〉 "we" 실행 결과 〉 테스트를 통과하였습니다. */
1. `Math.ceil(s.length/2)-1`을 사용하여 문자열의 중간 인덱스를 구하고 올림을 수행합니다. `-1`을 한 이유는 홀수 길이의 문자열에서 정확한 중간을 찾기 위해서 입니다.
2. `Math.floor(s.length / 2) + 1`을 사용하 문자열의 중간 인덱스를 구하고 내림을 수행합니다. + 1을 한 이유는 짝수 길이의 문자열에서 정확한 중간을 찾기 위해서 입니다.
3. `s.substring(start, end)` 문자열을 잘라내어 반환합니다. 여기서 `start`는 중간 인덱스의 왼쪽 값을, `end`는 중간 인덱스의 오른쪽 값을 나타냅니다.
# Math.ceil()란?
주어진 숫자를 올림하여 반환합니다. 즉, 소수점 이하를 무조건 올립니다.
# Math.ceil() 사용방법
const roundedUp = Math.ceil(4.2); // 결과: 5
# Math.ceil() 장단점
장점
주어진 숫자를 무조건 큰 정수로 올릴 수 있습니다.
단점
어떤 경우에는 정환한 반올림이 필요할 수 있으며,Math.ceil() 방법이 아닌 다른 방법이 필요할 수 있습니다.
# Math.ceil() 어떤 상황에 써야하는지?
주어진 값의 소수 부분을 무조건 올려야 하는 경우에 사용합니다. 예를 들어, 어떤 연산 결과를 올림하여 표시해야 할 때 사용할 수 있습니다.
# Math.floor()란?
주어진 숫자를 내림하여 반환합니다. 즉, 소수점 이하를 무조건 내립니다.
# Math.floor() 사용방법
const roundedDown = Math.floor(4.8); // 결과: 4
# Math.floor() 장단점
장점
주어진 숫자를 작은 정수로 내릴 수 있습니다.
단점
어떤 경우에는 정환한 반올림이 필요할 수 있으며,Math.floor() 방법이 아닌 다른 방법이 필요할 수 있습니다.
# Math.floor() 어떤 상황에 써야하는지?
주어진 값의 소수 부분을 무조건 내려야 하는 경우에 사용합니다. 예를 들어, 소수점 이하를 무조건 버릴 때 사용할 수 있습니다.
# 사용예시 정리
const number = 4.2; const roundedUp = Math.ceil(number); // 결과: 5 const roundedDown = Math.floor(number); // 결과: 4
'AIL( Algorithm I Learned)' 카테고리의 다른 글
#AIL_23.12.10 // Programmers_약수의 개수와 덧셈 (0) 2023.12.10 #AIL_23.12.08 // Programmers_수박수박수박수박수박수? (1) 2023.12.08 #AIL_23.12.06 // Programmers_하노이의 탑 (1) 2023.12.06 #AIL_23.12.05 // Programmers_제일 작은 수 제거하기 (0) 2023.12.06 #AIL_23.12.02 // Programmers_피보나치 수 (0) 2023.12.02