오늘부터는 알고리즘을 공부한다.
일주일간 28개의 문제를 풀며 javascript와 친해지는 시간이라고 하는데 문제만 보고 약간 질렸음..!
let 변수 = ""; (변수는 문자형이다)
let 변수 = 0; (변수는 숫자형이다)
뭐라는거야..싶었던 첫번째 문제
process.stdin.setEncoding('utf8');
이것만 검색해도 죄다 직사각형 별찍기 해설이 나옴ㅋㅋㅋ
stdin은 받은 입력 값을 프로그램에 나타내주는 stream (keyboard)
-> stdin 실행
stdout은 모든 출력값들이 가는 곳 (파이썬의 print와 같은) (console)
stderr은 디버깅 정보나 에러 출력하는 출력 채널 (console)
그리고 문제 해설을 보니 이 문제는 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);
}
});
우선 나는 바보니까.. 써본 split도 다시 봤다. 그리고 바보니까2 글로 남겨봄
const str = "apple, banana, orange";
const arr = str.split(",");
console.log(arr[0]) //apple
console.log(arr[1]) // banana (, 로만 나눠서 앞에 공백이 있다!)
console.log(arr[2]) // orange
console.log(arr.length) //3
* ."*".repeat(a)
별 모양을 a번 반복해라
그리고는 이제 *를 a 번 반복한걸 b까지 반복해서 돌린다..
적고보니 15% 정도는 알겠군!
function solution(num) {
if (num % 2 == 0) {
return 'Even'
} else {
return "Odd"}}
console.log(solution(3))
console.log(solution(4))
이건 파이썬 배우면서 연습했던거라 쉽네! 했는데 자바스크립트로 쓰려니 응? 싶어서 강의 보고서 작성했다 허허
return은 왜케 어색한지
function solution(s) {
let 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;
}
단어가 짝수가 아닐 때는 Math.floor를 통해 소수점을 버려서 정수만 나오도록 해야한다.
바보 같이 return answer를 function 밖에 놓고 (글자색도 다른데) 계속 왜 answer가 왜 정의 안됐다고 할까.. 고민했다 히히
function solution(a, b) {
let answer = 0;
if (a > b) {
for (i =b; i<=a; i ++) {
answer += i
} return answer;
} else {
for (j = a; j<=b; j++) {
answer+= j
} return answer;
} return answer;
}
설명 듣고서 혼자 거의 풀었는데 answer += 1 에서 좀 헤맸다.
왜 헤맸는지 생각해보면... 왜인지 모르겠다 그냥 습관으로 a+=i 이런게 되어야 할 것 같았어 :(
function solution(s) {
return Number(+s)
}
처음에 그냥 Number만 쓸까 하다가 그럴리가 없어! 하고 다른 방법을 찾으려 했으나 남들 푼것도 저렇게나 간단했다.
≈ 근데 + 붙이니 +, - 잘 붙어 나와서 신기 (하지 말고 검색해봐...)
이건 조원의 설명을 듣고 나서 다시 시도해본 것
설명 너무 잘해주셔서 12번 만에 성공함ㅋㅋㅋㅋㅋㅋ
function solution(numbers) {
let sum = 0;
for (let i=0;i<10;i++){
if(!numbers.includes(i)) {
sum += i}
}
return sum
}
console.log(solution([1,2,3,4,6,7,8,0]))
!numbers.includes(i)를 써서 주어진 numbers 안에 들어있지 않은 숫자를 찾아내는게 포인트 💫