본문 바로가기

프로그래머스

[알고리즘] rny_string (정규 표현식)

rny_string

문자열에 있는 m 을 모두 rn 으로 변경하기. 명작 > 띵작 이런느낌

 

rny_string result
"masterpiece" "rnasterpiece"
"programmers" "prograrnrners"
"jerry" "jerry"
"burn" "burn"

 

나의풀이:

function solution(rny_string) {
    return rny_string.replace( /m/gi, 'rn');
}

처음으로 정규표현식을 사용하여 문제를 풀어보았다. 

반복문 사용하면 몇줄씩 걸리는데 너무 쉽게 작성해서 허탈함이 느껴졌음

string.replace(/찾을 문자열/gi, "변경할 문자열") 형태로 작성해주면 된다.

 

g: 전체 모든 문자열을 변경하기

i: 대소문자 구분 없음, 위에선 모든 문자열이 소문자이기 때문에 작성하지 않아도 무방함

 

function solution(rny_string) {
    return rny_string.replace("m","rm")
}

그냥 replace 메소드만 사용하면 맨 첫번째 m 만 rm 으로 바뀜.

 

다른풀이 :

function solution(rny_string) {
    var answer = []
    for(i = 0; i < rny_string.length; i++) {
        if(rny_string[i] == "m") {
            answer.push("rn")
        }else {
            answer.push(rny_string[i])
        }
    } return answer.join("")
}

이건 반복문으로 직접 작성했음. 이런 생각을 안하고 풀어도 되는 정규표현식이 무조건 좋은 코드인지 잘 모르겠다.