반응형
// 1. 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
process.stdin.setEncoding("utf8");
process.stdin.on("data", (data) => {
const n = data.split(" ");
const a = Number(n[0]),
b = Number(n[1]);
for (let i = 0; i < b; i++) {
let arr = "";
for (let j = 0; j < a; j++) {
arr += "*";
}
console.log(arr);
}
});
// const n = data.split(" ");
// const a = Number(n[0]),
// b = Number(n[1]);
// const row = "*".repeat(a);
// for (let i = 0; i < b; i++) {
// console.log(row);
// }
// repeat 사용하기
// 2. 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
function solution(num) {
let answer = "";
if (num % 2 === 0) {
return (answer = "Even");
} else {
return (answer = "Odd");
}
}
function solution(num) {
return num % 2 === 0 ? "Even" : "Odd";
}
// 3. 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
function solu(s) {
var answer = "";
if (s.length % 2 == 0) {
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[Math.floor(s.length / 2)];
}
return answer;
}
console.log(solu("qwertyu"));
// 012345
// qwerty
//
// 0123456
// qwertyu
// 0123456789
// abcdefghijk
// 다른 풀이
// function solution(s) {
// return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
// }
// substr = 특정자리의 인덱스 값에서 문자를 추출 Math.ceil = 올림 , 단어의 길이가 나눴을때 나머지가 0 즉 짝수라면 2번째자리를 아니라면 1번째자리를 리턴
// console.log(solution("qwert"));
// 4. 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
function solution(a, b) {
var answer = 0;
let min = Math.min(a, b);
// 두 숫자중 적은 것
let max = Math.max(a, b);
// 두 숫자중 큰 것
for (let i = min; i <= max; i++) {
answer += i;
}
return answer;
}
// function adder(a, b) {
// var result = 0;
// return ((a + b) * (Math.abs(b - a) + 1)) / 2;
// }
// 다른 사람 풀이 인데 Math.abs |절대값| 와... 등차수열의 합을 구할 때는 첫항과 마지막항을 더해서 항수를 곱하고 2로 나눈다.
// 5. 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
function solution(s) {
return s / 1;
}
// 6. 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
function solution(numbers) {
var answer = 0;
for (let i = 0; i <= 9; i++) {
if (!numbers.includes(i)) answer += i; // 논리연산자 !(numbers)가 i를 포함하지 않는다면, answer에 그 i 값들을 더해라
}
return answer;
}
// 7. 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
if (signs[i] === true) {
answer += absolutes[i];
} else {
answer -= absolutes[i];
}
}
return answer;
}
// 8. 평균구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
function solution(arr) {
var answer = 0;
sum = 0;
for (i = 0; i < arr.length; i++) {
sum += arr[i];
}
answer = sum / arr.length;
return answer;
}
// 이렇게도 풉니다.
function solution(arr) {
return arr.reduce((sum, current) => sum + current) / arr.length;
}
// reduce란
const arr = [1, 2, 3, 4, 5, 6, 0.5];
arr.reduce((a, b) => {
return a + b;
});
// 9. 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
function solution(phone_number) {
answer = "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
return answer;
}
// 10. 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
function solution(arr1, arr2) {
let answer = [[]];
for (let i = 0; i < arr1.length; i++) {
answer[i] = [];
for (let j = 0; j < arr1[i].length; j++) {
answer[i].push(arr1[i][j] + arr2[i][j]);
}
}
return answer;
}
console.log(
solution(
[
[1, 2],
[2, 3],
],
[
[3, 4],
[5, 6],
]
)
);
반응형
'생각 > javascript' 카테고리의 다른 글
혼공스 피라미드 , 윤년 (1) | 2022.09.24 |
---|---|
알고리즘 연습 21-28번 (1) | 2022.09.24 |
알고리즘 연습 11-20번 (1) | 2022.09.24 |
reduce함수 (0) | 2022.09.24 |
JavaScript 정리 (3) | 2022.09.23 |