- 이 문제에는 표준 입력으로 두 개의 정수 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]);
});
풀이:
repeat과 for반복문을 이용해 풀이
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
const firstrow = "*".repeat(a)
for(let i=0; i < b; i++) {
console.log(firstrow);
}
});
note
풀이하면서 의문점: 줄바꿈이 왜 자동으로 되는가? 그리고 이건 절대 하하 난이도가 아니다!
다른 풀이법: for문 안에 for문을 한번 더 넣으면 된다!
- 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
조건:
function solution(num) {
var answer = '';
return answer;
}
풀이:
2로 나눴을 때 나머지가 없으면 짝수, 그렇지 않으면 홀수이다! 여기서 주위할 것은 return하는 결과 텍스트를 대소문자 구분해서 정확히 기입할 것!
function solution(num) {
var answer = '';
if( num % 2 === 0) {
return answer = "Even"
} else {
return answer = "Odd"
}
return answer;
}
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
조건:
function solution(s) {
var answer = '';
return answer;
}
처음 짠 코드:
function solution(s) {
var answer = s.split('');
var snum = s.split('').length - 1;
var position;
var addon;
if(snum % 2 == 1) {
position = snum / 2;
addon = 1
var a = position + addon
return answer[a]
} else {
var b = a + 1
return answer[a,b]
}
}
풀이:
일단 s[] 안에 문자열이 몇번째에 있는지 불러와야하는데 문자열 번호는 0부터 시작하기 때문에 중간에 위치한 문자열의 번호는 5자리일 경우 2번째, 4자리일 경우 1,2번째이다.
*새로 알게된점: length를 쓰면 굳이 문자열을 split으로 나눠서 갯수를 세지 않아도 알아서 처리해준다. 편리하다.
function solution(s) {
var answer = '';
const snum = s.length;
if(snum % 2 === 0) {
answer = s[(snum/2)-1] + s[(snum/2)];
} else {
answer = s[(snum/2)- 0.5];
}
return answer;
}
note
다른 풀이도 공부해볼 것:
아직 배우지 않은 부분이 많지만 간략하고 멋지다.
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
substr : substr에서 substr(위치, 갯수) 를 출력
Math.floor: 버림 함수
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
조건:
function solution(a, b) {
var answer = 0;
return answer;
}
풀이:
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;
}
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
조건:
풀이:
function solution(s) {
const answer = Number(s);
return answer;
}
생각보다 간단하게 풀이를 했는데 다른 풀이가 많을 것 같다.
note
굳이 원래 제공하는 탬플릿을 이용할 필요가 없다.
다른 분이 풀이한 것 중 너무 천재적인 방법이 있었다!:
function strToInt(str){
return str/1
}
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
조건:
풀이:
function solution(numbers) {
let sum = 0;
for (i=0; i< numbers.length; i++) {
sum += numbers[i];
}
let answer = 45-sum;
return answer;
}
0 부터 9까지 라는 조건을 제시된 상태. 0부터 9까지 전체 합에서 포함되어 있는 요소들의 합을 빼는 방법을 생각했다.
note
-다른 풀이: reduce 사용!
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
reduce 함수: 배열의 각 요소를 순회하며 callback함수의 실행 값을 누적하여 하나의 결과값을 반환한다. (각 요소를 모두 더하는 의미)
reduce함수가 가지는 4가지 인수:
const sum1 = numbers.reduce((accumulator, currentNumber) => accumulator + currentNumber);
console.log('sum1 =', sum1);
또는 function으로 선언할 시
function sumReducer(accumulator, currentNumber) {
return accumulator + currentNumber;
}
const sum2 = numbers.reduce(sumReducer);
console.log('sum2 =', sum2);
정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
조건:
풀이:
signs와 absolutes 배열의 길이가 같기 때문에 요소들의 포지션도 같을 것이다.
function solution(absolutes, signs) {
for(i=0;i<=absolutes.length;i++) {
if(signs[i] === false) {
absolutes[i] = absolutes[i]* -1
} else {
absolutes[i]
}
}
let answer = absolutes.reduce(function(accumulator, currentnumber){
return accumulator + currentnumber})
return answer;
}
reduce 함수는 이렇게도 써줄수있다:
const sum1 = numbers.reduce((accumulator, currentNumber) => accumulator + currentNumber);
note
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
조건:
풀이:
7번 문제에 나온 reduce를 사용하여 푸는 문제인데 다 더한다음 배열 내 요소의 갯수로 나누면 평균을 구할 수 있다.
function solution(arr) {
let sum1 = arr.reduce(function(accumulator, currentnumber){
return accumulator + currentnumber})
let answer = sum1/ (arr.length);
return answer;
}