본문 바로가기
코테연습

72. 가운데 글자 가져오기 Javascript

by hxunz 2022. 6. 30.

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

 

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

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

programmers.co.kr

 

 

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - 주어진 단어의 가운데 글자를 구하라.
  • 주어진 자료는 무엇인가?
     - s : 단어
  • 조건은 무엇인가?
     -
    s는 길이가 1 이상, 100이하인 스트링입니다.
  • 숨겨진 조건이나 자료가 있는가? 그렇다면 그 것을 다른 방법으로 해석해보라.
    - 단어의 길이가 짝수라면 가운데 글자 두개를, 홀수이면 가운데 글자 하나를 리턴하라

2. 계획

  • 전에 비슷한 문제를 알고 있는가?
     - 코드워즈에서 비슷한 문제를 푼 경험이 있다.
  • 이 문제를 푸는데 있어서 유용하게 쓸 수 있는 지식은 무엇인가?
     - Math.floor()
  1. 문자열의 길이를 사용해서 문자열이 홀수임을 의미하는 변수를 하나 만든다.
  2. 문자열을 반으로 쪼개서 가운데 글자를 구하는 변수를 하나 만든다. 이때, 홀수의 경우 소수점이 나오면 소수점을 버려준다.
  3. 문자열이 홀수면 가운데 글자를 리턴하고 짝수면 가운데 글자 두개를 리턴한다.

 

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (s) => {
  const odd = s.length % 2 === 1;
  const middleWord = Math.floor(s.length / 2);

  return odd ? s[middleWord] : `${s[middleWord - 1]}${s[middleWord]}`;
};

test('findMiddleWord', () => {
  expect(solution('abc')).toBe('b');
  expect(solution('abcd')).toBe('bc');
});

 

 

예전에 코드워즈에서 풀었던 문제와 똑같아서 바로 풀 수 있었다. 
그때는 이런 문제도 잘 못풀었었는데 지금은 잘 풀려서 뿌듯했다. 

문자열이 홀수일때와 짝수일때를 구분해서 리턴해야하기 때문에 홀수를 판별하는 변수를 만들어주었고
문자열의 가운데 인덱스를 구해서 리턴할때 문자열이 홀수인지 짝수인지에 따라서 단어를 가운데 하나만 리턴할지 
두개를 리턴할지를 정해주었다. 

근데 이렇게 전에 풀었던 방식으로 풀고 나니까 조금 허무했다. 
이전에 풀었던 방식이 아닌 다른 방법으로 어떻게 풀 수 있을지 더 고민해봤어야했다. 
다르게 어떻게 풀어볼 수 있을지 생각해봐야겠다. 

 

'코테연습' 카테고리의 다른 글

74. 피보나치 수 Javascript  (0) 2022.07.04
73. 프린터 Javascript  (0) 2022.07.01
71. 오픈채팅방 Javascript  (0) 2022.06.28
70. 카펫 Javascript  (0) 2022.06.27
69. 가장 큰 수 Javascript  (0) 2022.06.24

댓글