고양이와 코딩
[프로그래머스] 10월31일 ~ 11월6일 본문
10월 31일
flag에 따라 다른 값 반환하기
내 풀이
function solution(a, b, flag) {
const result = (flag) => (flag == true ? a + b : a - b);
return result(flag);
}
삼항연산자를 사용했다.
0떼기
내 풀이
function solution(n_str) {
for (let i = 0; i < n_str.length; i++) {
if (n_str[i] !== '0') {
return n_str.substring(i);
}
}
}
n_str을 순회하면서 0이 아닌 첫 번째 문자를 찾으면 substring() 메서드로 해당 i문자열에서부터 끝까지를 추출한다 ~
남의 코드
const solution = (str) => String(Number(str))
오오.. ㅁㅊ.. 숫자로 변환한 뒤 다시 문자열로 바꾸면.. 0010이라는 숫자는 없으니..
앞의 0들이 다 사라지고 반환된다.. 오 ..ㅁㅊ!!
11월 01일
공배수
내 풀이
function solution(number, n, m) {
return number % n === 0 && number % m === 0 ? 1 : 0
}
카운트업
내 풀이
function solution(start_num, end_num) {
var answer = [];
for (let i = start_num; i < end_num + 1; i++){
answer.push(i);
}
return answer;
}
홀짝에 따라 다른 값 반환하기
내 풀이
function solution(n) {
var answer = 0;
var result = [];
if (n % 2 !== 0){
for (let i = 1; i < n + 1; i++) {
if (i % 2 !== 0){
answer += i;
}
}
} else {
for (let i = 1; i < n + 1; i++){
if (i % 2 === 0){
result.push(i * i);
}
}
for (let j = 0; j < result.length; j++) {
answer += result[j];
}
}
return answer;
}
문자열을 정수로 변환하기
내 풀이
function solution(n_str) {
return Number(n_str);
}
11월 02일
정수찾기
내 풀이
function solution(num_list, n) {
var answer = 0;
for (let i = 0; i < num_list.length; i++){
if ( num_list[i] === n ){
return 1;
}
}
return 0;
}
n의 배수
내 풀이
function solution(num, n) {
return num % n === 0 ? 1 : 0
}
my_string
내 풀이
function solution(rny_string) {
const char_rny = rny_string.split('');
for (let i = 0; i < char_rny.length; i++){
if (char_rny[i] == "m") {
char_rny[i] = "rn";
}
}
var answer = char_rny.join('');
return answer;
}
처음에는 char_rny를 replace()로 사용하려고 했다가, 그냥 간단히 rn으로 바꿔주는걸로 해결했다 ㅎㅎ
소문자로 바꾸기
내 풀이
function solution(myString) {
return myString.toLowerCase();
}
소문자로 바꿔주는 toLowerCase() 메서드 사용!
11월 05일
대소문자 바꿔서 출력하기
내 풀이
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];
switchStr = [];
for (let i = 0; i < str.length; i++){
if (str[i] === str[i].toUpperCase()){
switchStr.push(str[i].toLowerCase());
} else if (str[i] === str[i].toLowerCase()){
switchStr.push(str[i].toUpperCase())
}
}
const result = switchStr.join('');
console.log(result);
});
대문자 -> 소문자, 소문자 -> 대문자로 변환하는 문제!
바뀐 문자를 저장할 배열을 만들고 반복문 안에 조건문을 넣어서 대문자면 소문자로, 소문자면 대문자로 바꿔서 배열에 넣은다음
join('')으로 문자열로 합쳐준다 ㅎㅎ
특수문자 출력하기
내 풀이
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('close', function () {
console.log("!@#$%^&*(\\\'\"<>?:;");
});
이스케이프 시퀀스 사용 ㅎㅎ!!
눈 아프다
덧셈식 출력하기
내 풀이
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
const num1 = Number(input[0]);
const num2 = Number(input[1]);
const sum = num1 + num2;
console.log(`${num1} + ${num2} = ${sum}`);
});
문자열로 입력되어있는 input을 숫자로 변환하고 템플릿 리터럴로 대체한다 ㅎㅎ!!
그리고 Number을 쓰면 소수점일 경우 그대로 소수점까지 반환되므로 만약 정수로 변환하고 싶다면
parseInt() 함수를 쓰면 된다.
문자열 붙여서 출력하기
내 풀이
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
str1 = input[0];
str2 = input[1];
sumStr = str1 + str2;
console.log(`${sumStr}`);
});
11월 06일
문자열 돌리기
내 풀이
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];
let result = '';
for (let i = 0; i < str.length; i++){
result += str[i] + '\n';
}
console.log(result);
});
result 라는 변수를 만들어서 str[i]하나하나에 개행문자를 더해준다.
요새 화가 많아져서 이런 문제를 보면 90도로 돌리기는 무슨,, 그냥 줄바꾸는거지..
괜히 헷갈리게 말하네 ㅡㅡ 이럼서화냄 ㅎㅎ
홀짝 구분하기
내 풀이
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
n = Number(input[0]);
const result = (n % 2 == 0 ? `${n} is even` : `${n} is odd`);
console.log(result);
});
삼항연산자 사용, 템플릿 리터럴은 ``로 감싸주기!!
문자열 겹쳐쓰기
내 풀이
function solution(my_string, overwrite_string, s) {
var result = '';
const firstPart = my_string.substring(0, s) + overwrite_string;
const remainingPart = my_string.substring(s + overwrite_string.length);
result = firstPart + remainingPart;
return result;
}
remainingPart부분을 어떻게 처리해야할지 고민을 좀 했다.
firtstPart는 my_string.substring(0,s) = He 와 overwrite_string인 lloWorl을 합친 문자열을 저장하고
remainingPart는 my_string.substring(s + overwrite_string.length) 까지를 분할해서 d를 저장한돠
그리고 result에 합쳐주면 완성 ~~^^
'javascript' 카테고리의 다른 글
[프로그래머스] 11월14일 ~ 11월20일 (0) | 2023.11.15 |
---|---|
[프로그래머스] 11월7일 ~ 11월13일 (0) | 2023.11.07 |
[프로그래머스] 10월 27일 ~ 10월 30일 (1) | 2023.10.27 |
[프로그래머스] 10월 22일 ~ (1) | 2023.10.23 |
[JavaScript] 제로부터 시작하는 자바스크립트(2) (1) | 2023.03.19 |