A 강조하기
문제 설명
문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
입출력 예
myString | result |
"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) {
return [...myString].map((str) => str.toLowerCase() === 'a' ? 'A' : str.toLowerCase()).join('');
}
- 문자열을 배열로 전환한다.
- 배열의 요소가 'a' 혹은 'A'라면 'A'를 반환하고, 그 외에는 모두 소문자로 변환한다.
- join() 메서드로 배열은 문자열로 다시 전환한다.
다른 사람의 풀이 01
const solution=s=>s.toLowerCase().replaceAll('a','A');
문자열 자체를 소문자로 전환한 후에 `replaceAll` 메서드를 이용해서 알파벳 'a'를 대문자로 변환한다.
다른 사람의 풀이 02
function solution(myString) {
return [...myString].map(str => ['a', 'A'].includes(str)? 'A' : str.toLowerCase()).join('');
}
내 풀이와 동일하게 삼항연산자를 이용했는데 삼항연산자의 조건에 알파벳 'a'로 배열을 만들어서 `includes` 메서드를 사용한 점이 인상 깊었다.
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.07.03 Programmers_배열의 원소만큼 추가하기 (0) | 2023.07.04 |
---|---|
[TIL] 2023.06.30 Programmers_간단한 식 계산하기 (0) | 2023.06.30 |
[TIL] 2023.06.13 Programmers_수열과 구간 쿼리 1 (0) | 2023.06.13 |
[TIL] 2023.06.10 Programmers_왼쪽 오른쪽 (3) | 2023.06.10 |
[TIL] 2023.06.06 Programmers_순서 바꾸기 (0) | 2023.06.06 |
댓글