Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오블완
- javascript
- 프로그래머스
- 자바스크립트
- bfs
- 티스토리챌린지
- C언어
- select
- Java
- Lv. 0
- join
- Python
- programmers
- LEVEL 2
- Lv. 1
- SQL
- SQL 고득점 KIT
- 소프티어
- Lv. 3
- softeer
- dfs
- 동적계획법
- Lv. 2
- 너비 우선 탐색
- 깊이 우선 탐색
- 파이썬
- DP
- level 3
- group by
- Dynamic Programming
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
프로그래머스 [Lv. 0] 대소문자 바꿔서 출력하기 {언어 : JavaScript} 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/181949
정답 코드 1
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = [line];
}).on('close',function(){
str = input[0];
// map()을 사용하여 각 문자를 변환하고 새 배열을 생성합니다.
const newArr = str.split('').map(char => {
if (char >= 'a' && char <= 'z') {
return char.toUpperCase();
} else if (char >= 'A' && char <= 'Z') {
return char.toLowerCase();
} else {
return char; // 알파벳이 아닌 문자는 변경 없이 반환
}
});
// join()을 사용하여 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
const newStr = newArr.join('');
console.log(newStr);
});
정답 코드 2
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = [line];
}).on('close',function(){
let str = input[0];
const newStr = str.split('').reduce((result, char) => {
if (char >= 'a' && char <= 'z') {
return result + char.toUpperCase();
} else if (char >= 'A' && char <= 'Z') {
return result + char.toLowerCase();
} else {
return result + char; // 알파벳이 아닌 문자는 변경 없이 추가
}
}, '') // 초기값으로 빈 문자열을 제공합니다.
console.log(newStr);
});
풀이 방법
- map을 이용해서 새로운 배열을 만든다.
- reduce를 이용해서 새로운 문자열을 만든다.
느낀점
- 10000자의 문자열로 비교한 결과
function generateRandomString(length) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
function transformUsingReduce(str) {
return str.split('').reduce((result, char) => {
if (char >= 'a' && char <= 'z') {
return result + char.toUpperCase();
} else if (char >= 'A' && char <= 'Z') {
return result + char.toLowerCase();
} else {
return result + char;
}
}, '');
}
function transformUsingMapJoin(str) {
return str.split('').map(char => {
if (char >= 'a' && char <= 'z') {
return char.toUpperCase();
} else if (char >= 'A' && char <= 'Z') {
return char.toLowerCase();
} else {
return char;
}
}).join('');
}
// 문자열 생성
const testString = generateRandomString(10000); // 예: 10,000자의 랜덤 문자열
// reduce 사용
console.time('Using reduce');
transformUsingReduce(testString);
console.timeEnd('Using reduce');
// map + join 사용
console.time('Using map + join');
transformUsingMapJoin(testString);
console.timeEnd('Using map + join');
'개발 언어 입문 > 자바스크립트' 카테고리의 다른 글
프로그래머스 [Lv. 0] 문자열 돌리기 {언어 : JavaScript} (1) | 2024.02.14 |
---|---|
프로그래머스 [Lv. 0] 문자열 붙여서 출력하기 {언어 : JavaScript} (0) | 2024.02.14 |
프로그래머스 [Lv. 0] 덧셈식 출력하기 {언어 : JavaScript} (1) | 2024.02.14 |
프로그래머스 [Lv. 0] 특수문자 출력하기 {언어 : JavaScript} (0) | 2024.02.14 |
프로그래머스 [Lv. 0] 문자열 반복해서 출력하기 {언어 : JavaScript} (0) | 2024.02.14 |