프로그래머스 문제
1번 문제
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
제한사항
1 ≤ str의 길이 ≤ 1,000,000
str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
2번 문제
정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.
제한사항
-100,000 ≤ a, b ≤ 100,000
입출력 예
입력 #1
4 5
출력 #1
a = 4
b = 5
3번 문제
4번 문제
영어 알파벳으로 이루어진 문자열 str이 주어집니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
입출력 예
입력 #1
aBcDeFg
출력 #1
AbCdEfG
🕹️ 이 문제를 풀기 위해 알아야 할것 - readline
그동안 사용자 입력 받는 방법으로 prompt, confirm, alert를 사용해왔다. 그야... 브라우저에서 확인해왔으니까...
이 친구들은 브라우저에서 제공하는 내장함수이다.
그런데 코테를 풀어보면서 다 틀리다고 하길래ㅋㅋㅋ 찾아보니 node.js 환경에서 사용자 입력을 받을때 사용하는 내장모듈이 있다더라
코테를 볼때 돌리는 환경이 node.js이니까... 그래... 이게 맞지.....
기본적인 틀은 이렇다.
//인터페이스 생성하기
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
// 입출력 처리
rl.on("line", (line) => {
/*입력값 처리 코드*/
rl.close(); // 인터페이스를 종료해 무한입력 방지
});
rl.on("close", () => {
/*입력 이후 실행 코드*/
process.exit(); // 프로세스 종료
});
"line" : 입력받은 값을 한줄씩 읽어 문자열 타입으로 전달하는 이벤트
"close" : 더이상 입력 값이 없을 경우에 해당하는 이벤트
<내 답안>
1번 문제
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input;
rl.on('line', (line) => {
input = line
rl.close()
})
rl.on('close',() =>{
console.log(input)
process.exit()
});
2번 문제
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', (line) => {
input = line.split(' ').map((item)=> parseInt(item));
rl.close()
})
rl.on('close', () =>{
console.log(`a = ${input[0]}`)
console.log(`b = ${input[1]}`)
});
3번문제
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
let str;
let n
let i = 0
rl.on('line', (line) => {
input = line.split(' ')
str = input[0]
n = input[1]
rl.close()
})
rl.on('close', () =>{
while ( i < n){
process.stdout.write(str)
i++
}
});
4번 문제
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
let len;
let i = 0;
function isUpper(val) {
if (val === val.toUpperCase()) {
val = val.toLowerCase();
return val;
} else if (val === val.toLowerCase()) {
val = val.toUpperCase();
return val;
}
}
rl.on("line", (line) => {
input = line.split("");
len = input.length;
rl.close();
});
rl.on("close", () => {
while (i < len) {
const temp = isUpper(input[i]);
process.stdout.write(temp);
i++;
}
});
728x90
'JS 코테' 카테고리의 다른 글
<Javascript-CT> 기초 DAY 6 (0) | 2025.04.24 |
---|---|
<Javascript-CT> 기초 DAY 5 (0) | 2025.04.24 |
<Javascript-CT> 기초 DAY 4 (0) | 2025.04.24 |
<Javascript-CT> 기초 DAY 3 연산 (0) | 2025.04.24 |
<Javascript-CT> 기초 DAY 2 - 출력, 연산 (0) | 2025.04.24 |