알고리즘

[JS] 알고리즘 기초 정복 15번 - 가운데 문자 출력

햄❤️ 2021. 7. 9. 21:02
반응형

문제 15번

소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세 요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.

 

🍄 입력설명

첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.

 

🍄 출력설명

첫 줄에 가운데 문자를 출력합니다.

 

🍄 입력예제 1

study

 

🍄 출력예제 1

u

 

🍄 입력예제 1

good

 

🍄 출력예제 1

oo

 


정답 코드

1) substring() 이용

   - substr(시작 인덱스, 종료 인덱스 )

String.prototype.substring()
function solution(s) {
	let answer;
	let mid = Math.floor(s.length / 2);
	if (s.length % 2 === 1) answer = s.substring(mid, mid + 1);
	//인덱스로 mid만 짤라낸다.
	else answer = s.substring(mid - 1, mid + 1); // 4일 경우 (1,3) = 인덱스 1부터 2까지

	return answer;
}

let s = "study";
console.log(solution(s));

 

2) substr() 이용

   - substr(시작 인덱스, 자를 문자열 갯수)

String.prototype.substr()

 

function solution(s) {
	let answer;
	let mid = Math.floor(s.length / 2);
    //substr(2,4) -> 2번 인덱스부터 4개 뽑기라는 뜻
	if (s.length % 2 === 1) answer = s.substr(mid, 1);
	else answer = s.substr(mid - 1, 2);

	return answer;
}

let s = "study";
console.log(solution(s));

 

3) Math.floor 이용

  - 주어진 숫자와 같거나 작은 정수 중 가장 큰 수를 반환한다.
    ex) Math.floor(5.95) => 5 출력

function solution(s) {
	let answer;
	if (s.length % 2 === 0) {
		answer = s[s.length / 2 - 1] + s[s.length / 2];
	} else {
		answer = s[Math.floor(s.length / 2)];
	}
	return answer;
}

let s = "good";
console.log(solution(s)); //oo 출력

 

728x90
반응형