본문 바로가기

Algorithm

[알고리즘] #3 가운데 글자 가져오기 | 프로그래머스

728x90

 

 

오늘의 알고리즘. 가운데 글자 가져오기 문제를 풀어보았다.

https://programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

 

 

 

<가운데 글자 가져오기>

- 문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

- 제한 사항

s는 길이가 1 이상, 100이하인 스트링입니다.

 

 

< 문제 풀이코드 > 

 

< 실행결과 >

 

< 문제 리뷰 > 

// 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 
// 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

// 생각해보기 : 가운데 글자를 보여주려면 반으로 자른 걸 보여주면 되지 않을까? 
// 1. 글자의 갯수를 반으로 나눈다. 소수점이 있을 수도 있으니 소수점은 없애준다. 
// 2. 글자[반으로 나눈 번째]를 출력해본다.
// 3. 짝수일 경우도 생각해준다.
// 4. 짝,홀을 판단해서 짝수일 경우에만 두글자를 보여준다.


// s에 'abcdefgh'가 입력되었다고 가정해보자.
function solution(s) {
    let num = s.length; //문자가 8개니까 문자길이는 8
    let oddeven = parseInt(num%2) //짝수,홀수 판단 기능을 위한 변수를 만들어주었다.
    let quotient = parseInt(num/2); //문자길이 반으로 나눈값 4 //소수점 없애기 함수
    let answer = 0; //답을 받을 변수

	// 만약 짝수라면 (짝수는 2로 나눴을 때 0이다)
    if (oddeven == 0) {
    //문자를 반으로 자른부분 -1, 문자를 반으로 자른부분 (index는 0부터 시작하므로 1을 빼줌)
    //따라서 반으로 나눈 수가 4였으므로 s[4-1]s[4]는 de이다.
    answer = s[quotient-1] + s[quotient];
    } else { // 홀수라면 그냥 문자를 반으로 자른 부분(소수점 떼어버림)
    answer = s[quotient];
    }
	
    // 정답을 de를 solution으로 보낸다. 
    return answer
}
728x90