Algorithm
[Algorithm] 가운데 글자 가져오기
sod0l
2024. 9. 23. 11:37
1. 문제 개요
- 문제 제목: 문자열 가운데 글자 가져오기
- 문제 설명: 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
2. 문제 해결 전략
- 단계 1: 문자열 길이 확인
문자열의 길이가 홀수인지 짝수인지 확인한다. 문자열 길이가 짝수면 가운데 두 글자, 홀수면 가운데 한 글자를 반환해야 하기 때문에 이를 구분하는 것이 중요하다. - 단계 2: 가운데 글자 위치 계산
문자열의 길이에 따라 가운데 글자의 위치를 계산한다. 홀수일 경우 가운데 글자 하나를 반환하고, 짝수일 경우 가운데 두 글자를 반환한다. - 단계 3: 조건에 맞는 글자 변환
조건에 맞게 문자열에서 필요한 글자를 추출하고 반환한다.
3. 코드 분석
// 30. 가운데 글자 가져오기
// 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
function solution(s) {
// 1. 문자열의 길이 구하기
var len = s.length;
// 2. 문자열의 길이를 2로 나누고 소수점 버리기
var mid = Math.floor(len / 2);
// 3. 문자열의 길이가 홀수인지 확인하기(가운데 한 글자 반환)
if (len % 2 === 1) {
return s[mid];
// 4. 문자열의 길이가 짝수인지 확인하기(가운데 두 글자 반환)
} else {
return s[mid - 1] + s[mid];
}
}
console.log(solution("javascript")); // 문자열 따옴표로 감싸기
console.log(solution("programming"));
3-1) 메소드 및 함수 설명
- 메소드/함수 이름: `Math.floor`
- 용도: 소수점을 버리고 주어진 숫자를 가장 가까운 작은 정수로 변환하는 함수
- 설명: `Math.floor(x)는 숫자 `x`를 가장 가까운 정수로 내림한다. 예를 들어, `Math.floor(2.9)`는 `2`를 반환한다. 이 코드는 짝수와 홀수 문자열 모두에서 가운데 인덱스를 구할 때 사용한다.
- 사용 예:
var mid = Math.floor(5 / 2); // 결과는 2
var midEven = Math.floor(6 / 2); // 결과는 3
3-2) 단계별 코드 분석
- `var len = s.length;`
- 설명: 입력된 문자열의 길이를 계산한다.
- 예시: `"javascript"'는 길이가 10, '"programing"'은 길이가 11이다.
- `var mid = Math.floor(len / 2);`
- 설명: 문자열의 길이를 2로 나누어 가운데 인덱스를 구한다. 이때 `Math.floor`를 사용하여 소수점 아래를 버린다.
- 예시: 길이가 11인 `"programming"` 경우 `Math.floor(11 / 2)`는 5를 반환하여, 문자열의 가운데 인덱스는 5가 된다.
- `if (len % 2 ===1)`
- 설명: 문자열 길이가 홀수인지 짝수인지 확인하는 조건이다. 길이가 홀수이면 가운데 글자 하나만 반환하고, 짝수면 가운데 두 글자를 반환한다.
- 예시: `"javascript"`의 경우 가운데 글자 `"sc"`가 반환된다.
4. 코드의 역할 및 활용
4-1) 코드의 역할
- 이 코드는 문자열의 길이에 따라 자동으로 가운데 글자 또는 가운데 두 글자를 반환한다. 문자열의 길이가 홀수이든 짝수이든 적절하게 처리할 수 있다.
4-2) 적용 예시
이 코드는 문자열의 가운데 부분을 추출하는 문제에 적용될 수 있으며, 다양한 상황에서 유용하게 활용될 수 있다.
- 문자열 분석: 사용자가 입력한 단어나 텍스트에서 중요한 정보를 추출할 때, 가운데 글자를 기준으로 데이터를 처리하거나 분석하는 경우에 사용할 수 있다. 예를 들어, 문자의 규칙성을 확인하거나 중간값을 구하는 분석 작업에 적합하다.
- 디자인 및 UI: UI/UX 디자인에서 중간 글자를 강조하여 시각적인 효과를 주거나, 특정 문자열의 가운데 부분을 사용하여 아이콘이나 시각적 요소를 생성할 때 활용될 수 있다.
- 게임 개발: 단어나 문자열을 이용한 퍼즐 게임에서 가운데 글자를 추출해 힌트를 제공하거나, 가운데 글자를 맞추는 게임 규칙을 만들 때 사용할 수 있다.
- 암호화 및 데이터 처리: 데이터 처리에서 특정 문자열의 가운데 값을 확인하고 이를 암호화하는 규칙으로 활용할 수 있다. 예를 들어, 문자열의 중앙값을 사용해 패턴을 적용하는 암호화 방식에 활용될 수 있다.