본문 바로가기

코딩테스트

[Codewar] Abbreviate a Two Word Name - javascript

문제 : 

Write a function to convert a name into initials. This kata strictly takes two words with one space in between them.

The output should be two capital letters with a dot separating them.

 

It should look like this:

Sam Harris => S.H

Patrick Feeney => P.F

 

문제해석 : 엄청 쉬운 문제. 문자열을 다루는 문제다. 

 

풀이 :

function abbrevName(name){
    let names = name
    names = names.split(' ')
    names = names[0][0].toUpperCase()+'.'+names[1][0].toUpperCase()
    return names
}

 

나는 이렇게 풀었다. 그런데 어떤 신기한 선생님은 이런 문제를 정규식으로 풀어버린다.

function initialName(words) {
    'use strict'
    
    return words
        .replace(/\b(\w)\w+/g, '$1.')
        .replace(/\s/g, '')
        .replace(/\.$/, '')
        .toUpperCase();
}

console.log(initialName('momin riyadh'));  // M.R
console.log(initialName('momin riyadh ralph')); // M.R.R

 

'코딩테스트' 카테고리의 다른 글

[백준] 동전 0 - 파이썬  (0) 2021.09.15
[CodeWars] IQ Test  (0) 2021.07.31
[Codewar] Take a Ten Minute Walk - 자바스크립트  (0) 2021.06.24
[1012번]유기농배추 - 파이썬  (0) 2021.06.23
[백준]스택수열 파이썬  (0) 2021.06.17