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 line = "";
for(let j=0; j<a; j++){
line = line + "*"
}
console.log(line)
}
});
function solution(num) {
var answer = '';
if(num%2==0){
answer = "Even"
}
else{
answer ="Odd"
}
return answer;
}
function solution(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;
}
function solution(a, b) {
var answer = 0;
if(a===b){
answer=a
}else if(a<b){
for(i=a; i<=b; i++){
answer+=i
}
}else{
for(i=b; i<=a; i++){
answer+=i
}
}
return answer;
}
※참고하면 좋은 함수 Math.min / Math.max
function adder(a, b, s = 0){
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}
※ 가우스.....갓...
return (a+b)*(Math.abs(b-a)+1)/2;
이렇게 간단하다고...?
function solution(s) {
var answer = 0;
answer = parseInt(s)
return answer;
}
미친.. 엄청난 사실..
※문자열과 숫자열의 사칙연산은 숫자가 나오게 됩니다
return str/1
엄청난 자괴감이 든다...
function solution(numbers) {
var answer = 0;
for(i=0; i<=9; i++){
if(numbers.includes(i)){
}else{
answer+=i
}
}
return answer;
}
#참고하면 좋은 코드... reduse 함수 찾아볼 것
eturn 45 - numbers.reduce((cur, acc) => cur + acc, 0);
arr.reduce(callback[, initialValue])
자바스크립트의 reduce함수는 배열의 각 요소를 순회하며 callback함수의 실행 값을 누적하여 하나의 결과값을 반환
parameter ▽
accumulator - accumulator는 callback함수의 반환값을 누적합니다.
currentValue - 배열의 현재 요소
index(Optional) - 배열의 현재 요소의 인덱스
array(Optional) - 호출한 배열
callback함수의 반환 값은 accumulator에 할당되고 순회중 계속 누적되어 최종적으로 하나의 값을 반
initialValue(Optional)
최초 callback함수 실행 시 accumulator 인수에 제공되는 값, 초기값을 제공하지 않을경우 배열의 첫 번째 요소를 사용하고, 빈 배열에서 초기값이 없을 경우 에러가 발생
1-10까지 더하기 예제
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sum1 = numbers.reduce((accumulator, currentNumber) => accumulator + currentNumber);
console.log('sum1 =', sum1);
function solution(absolutes, signs) {
var answer = 0;
for(i=0; i<absolutes.length; i++){
if(signs[i]){
answer+=absolutes[i]
}else{
answer-=absolutes[i]
}
}
return answer;
}
function solution(arr) {
let answer = 0;
for(i=0; i< arr.length; i++){
answer+=arr[i]
}
return answer/= arr.length;
}
function solution(phone_number) {
var answer = '';
for(i=0; i<phone_number.length; i++){
if(i<phone_number.length-4){
answer+="*"
}else{
answer+=phone_number[i]
}
}
return answer;
}
for문은 프로그램을 무겁게 하기 때문에 가급적이면 쓰면 안되는데 생각나는게 for문이랑 if문밖에 나는 코린이..
#참고하면 좋은 코드 / 정규식 공부하자. 데이터 한줄에 깔끔하게 끝난다... 진짜 최고다
return s.replace(/\d(?=\d{4})/g, "*");
경험이 부족해서 아직 함수 사용할 생각을 못하는 거겠지?
...슬라이스 함수 배웠잖아 멍청아!
사실은 이게 정말 베스트한 답인듯..
생각 좀 하고 코드짤 것 반성해라
var result = "*".repeat(s.length - 4) + s.slice(-4);
와 진짜 다차원배열이 난이도 [하] 라고? 제정신이에오?
아니 그냥 내가 부족한거겠지 흑흑
function solution(arr1, arr2) {
let answer=[[]]
for(i=0; i<arr1.length; i++){
answer[i]=[];
for(j=0; j<arr1[i].length; j++){
answer[i].push(arr1[i][j]+arr2[i][j])
}
}
return answer;
}
코테 풀면서 알게된 점
javascript는 엄밀히 말하면 2차원 배열이라는 게 없음
javascript의 다차원 배열은 배열안의 배열
javascript의 배열은 초기화없이 사용할 수 없음
let answer = Array(arr1.length).fill(null).map(() => Array());
.map과 .fill을 사용해서 null 값으로 채워줘서 동적할당 하는 방법
let answer = Arry.from(Array(arr1.length),() => Array());
Arry.from을 통해서 동적할당 하는 방법
값은 .push로 받음.
function solution(x, n) {
let con = 0
var answer = []
for(i=0; i<n; i++){
answer.push(con +=x)
}
return answer;
}
이걸 왜 7점이나 주지
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
와... 진짜 어떻게 이런 생각을 하지
방금전에 fill().map 위에 써놓고 나는 금붕어인갘ㅋㅋㅋㅋㅋㅋㅋㅋ
fill(x).map(v,i,x) v 요소의 값 === x / i 인덱스 / x 순회하는 대상
나 다음에 이거 꼭 쓰고 말꺼야 부들부들