[프로그래머스-기초] A 강조하기

JiEun·2023년 6월 7일
0

코테/코플릿

목록 보기
23/56

A 강조하기

문제 설명

문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.

제한사항

1 ≤ myString의 길이 ≤ 20
myString은 알파벳으로 이루어진 문자열입니다.

입출력 예

myStringresult
"abstract algebra""AbstrAct AlgebrA"
"PrOgRaMmErS""progrAmmers"

입출력 예 설명

입출력 예 #1
0번, 5번, 9번, 15번 인덱스의 "a"는 소문자이므로 전부 대문자로 고쳐줍니다.
다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
따라서 "AbstrAct AlgebrA"를 return 합니다.

입출력 예 #2
0번, 2번, 4번, 6번, 8번, 10번 인덱스의 문자들은 "A"가 아닌 대문자이므로 전부 소문자로 고쳐줍니다.
5번 인덱스의 "a"는 소문자이므로 대문자로 고쳐줍니다.
다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
따라서 "progrAmmers"를 return 합니다.

💻 내가 작성한 코드

function solution(myString) {
    let str = myString.toLowerCase()
    return str.replaceAll("a", "A")
}

전부 소문자(myString.toLowerCase())로 변경한 str 변수를 선언해 준다.

str을 replaceAll() 메서드를 사용해 str.replaceAll("a", "A") a인 부분을 전부 A로 변경해 주었다.

초반에는 for문이나 배열로 반환 후 map 메서드를 사용할까 했지만
replaceAll이 특정 문자를 변경해주는걸 생각해 적용했다.

💻 다른 사람이 작성한 코드

function solution(myString) {
    return [...myString].map(str => ['a', 'A'].includes(str)? 'A' : str.toLowerCase()).join('');
}
function solution(myString) {
    var answer = '';
    return [...myString].map(e => e == 'a' || e == "A" ? "A" : e.toLowerCase()).join("");
}

둘 다 map 메서드를 사용했지만 includes(), 삼항 연산자 정도의 차이가 있는거 같다.


✏️ 마치며

자칫 잘못하면 복잡해 졌을 코드를
여러 메서드를 이용해 간단하게 푼거 같다.

다른 사람들의 코드를 보고 내가 초반에 생각했던 map메서드는 어떤식으로 작성하셨는지도
같이 볼 수 있어 좋았다.

profile
💻 프론트엔드를 목표로 성장 중! (알아봤던 내용 등을 정리하기)

0개의 댓글