function greet (name) {
console.log("안녕 내 이름은 제시카야");
}
greet();
function greet (name) {
console.log("안녕 내 이름은 " + name + "야");
}
greet("에밀리");
function greet (name) {
return name;
}
let a = greet("에밀리");
console.log(a);
meetAt 함수를 만들기
인자를 세개
첫번째 인자는 년도에 해당하는 숫자
두번째 인자는 월에 해당하는 숫자
세번째 인자는 일에 해당하는 숫자
년도 인자만 받았을 경우 → "1234년" 과 같은 형식의 문자열을 리턴
년도,월 인자를 받았을 경우 → 년도와 월을 조합해서 "1234년 5월" 과 같은 형식의 문자열을 리턴
년도,월,일 인자를 전부 받았을 경우 → 년도,월,일을 조합해서 "1234/5/6" 과 같은 형식의 문자열을 리턴
function meetAt (year, month, date) {
if (date) {
return `${year}/${month}/${date}`;
} else if (month) {
return `${year}년 ${month}월`;
} else if (year) {
return `${year}년`;
}
}
function에서 매개변수는 순서대로 들어간다!!!
위의 예시에서 date가 있다는건 year, month 정보도 있다는 소리라서 if(year && month && date) 이렇게 까지 안쓰고 if(date)만 해줘도 됨
findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열
arr 의 값들 중 가장 작은 값을 리턴
만일 arr 가 비어있으면 0을 리턴
function findSmallestElement (arr) {
let a = arr;
if (a.length === 0) {
return 0;
} else {
return Math.min(...a);
}
}
console.log(findSmallestElement([100,200,3,-1,2,1]));
작은 값을 찾는걸 어떻게 프로그래밍할지 고민하는게 목표인 문제였는데, 배열에서 가장 작은 수를 찾는 기본함수를 구글링해버림
function howMoney (money) {
let back;
let oBack;
let cheon;
let oCheon;
let man;
let oMan;
back = money / 100;
oBack = parseInt(back / 5);
back = back % 5;
cheon = parseInt(oBack / 2);
oBack = oBack % 2;
oCheon = parseInt(cheon / 5);
cheon = cheon % 5;
man = parseInt(oCheon / 2);
oCheon = oCheon % 2;
oMan = parseInt(man / 5);
man = man % 5;
return ` 50000 * ${oMan}
10000 * ${man}
5000 * ${oCheon}
1000 * ${cheon}
500 * ${oBack}
100 * ${back}`;
}
console.log(howMoney(67800));
- '어떻게 문제 해결을 단순 노가다 식으로 생각해서 프로그래밍 할까'로 접근했어야 했는데
'어떻게 문헤 해결을 해야 내가 빨리 풀까'라고 사람이 푼다는 접근을 해서 오히려 자동화된 느낌이 아닌 코딩이 나옴- Math.floor 와 같은 유용한 함수들이 많으니 Math 객체 안에 무슨 함수들이 있는지 한번 살펴보자
ls : 현재 위치에 있는 폴더들. list의 약자.
ls 원하는폴더(현재 경로 안에있는) 하면 그 폴더 안의 내용 확인가능.
ls -l 하면 더 자세하게 파일 확인 가능
ls -a 하면 숨겨진 파일들도 다 나옴
ls -la 하면 l과 a 둘다 사용
cd : 내가 원하는 폴더로 감(Change Directory의 약자). desktop으로 가고싶다면 cd desk top
cd . 에서 . 은 현재경로를 의미(아무런 효과 x)
cd .. 에서 .. 은 현재경로의 상위 경로를 의미
cd ~ 현재 설정된 사용자의 최상위 경로로 이동
cd - 바로 이전 경로로
mkdir : 폴더 만들기(make directory). GzZ폴더를 만들고 싶다면 mkdir GzZ
mkdir -p dir1/dir2/dir3 하면 한번에 경로가 만들어짐
code . : vscode 실행
man : manual의 약자. man man 으로 들어감. 원하는 항목이 있다면 man claer 처럼 들어갈 수있음. 나가고 싶으면 q
clear : 터미널에 있는 모든 텍스트를 청소
pwd : Print Working Directory 약자. 현재있는곳의 전체 경로를 프린팅 해줌
open . : 현재경로를 파일 탐색기에서 열고 싶을 때
find . : 원하는 폴더나 파일을 찾아줌.
find . -type file -name "*.txt" 끝이 .txt로 끝나는 파일 찾기
find . -type directory -name "*2" 끝이 2로 끝나는 폴더 찾기
which : 내가 지금 실행하고자 하는 파일이 어디에 설치되어있는지 어디에 설정되어있는지 경로를 확인할 때 사용
which node 하면 node의 실행경로 확인
which code 하면 vscode의 경로 확인
touch : 파일 만들기
cat : 파일안에 있는 내용 확인 가능. 여러개의 파일을 쓰면 쓴 파일들 내용 모두 확인 가능
echo : 자체적으로는 그냥 에코 기능이지만 내용 > 파일명 하면 그 파일에 내용 기록하면서 생성함.
기존에 있는 파일명에 하면 그대로 덮어씌우고 >>로 해야 밑에 내용이 추가됨
cp : copy의 약자 cp 파일명 경로/ 해주면 원하는 위치로 해당파일 복사
mv : move의 약자 mv 파일명 경로/ 해주면 원하는 위치로 해당파일 이동
rm : remove의 약자 rm 파일명 해주면 해당파일 삭제
폴더를 삭제할때는 rm -r 해당폴더 해줘야함
grep : Global regular expression print의 약자
grep "world" *.txt 하면 txt파일중 world가 들어간 파일 모두 검색
grep -n "world" *.txt 하면 그 단어가 들어간 줄이 몇번째 줄인지 나옴
grep -ni "world" *.txt 하면 대소문자 상관없이 해당 줄 검색
grep -nir "world" . 하면 현재경로와 그하위에 있는 모든 서브 폴더에서 검색
export : 환경변수 설정. export MY_DIR="dir1" 환경변수는 대문자로 만들고 단어 사이사이에 _를 넣어준다.
env를 이용하면 모든 환경변수 출력 가능
$MY_DIR 이런식으로 $다음에 환경변수이름 쓰면 사용가능
unset MY_DIR 하면 지정된 환경변수 삭제 가능
function solution(seoul) {
var answer = '';
for (let i=0; i<seoul.length; i++) {
if (seoul[i] === "Kim") {
let x = i;
answer = "김서방은 " + x + "에 있다";
}
}
return answer;
}
"김서방은 " + x + "에 있다" 대신 `김서방은 ${x}에 있다` 쓰니 답이 이상하게 나옴. if문 안에서 제대로 안먹나 싶음.
function solution(seoul) {
var answer = '';
let x = seoul.indexOf("Kim");
answer = `김서방은 ${x}에 있다`;
return answer;
}
function solution(s) {
var answer = '';
if (s.length % 2 === 1) {
answer = s[(s.length - 1) / 2];
} else {
answer = s[s.length / 2 - 1] + s[s.length / 2];
}
return answer;
}