2024년 7월 10일 TIL
아직 카드가 발급되지 않아, 수강신청을 바탕으로 강의를 듣지 못 하는 상태이다...
그래서 SQL과 JavaScript 알고리즘 문제를 풀어보는 시간을 가졌다.
문제를 풀어보면서 개인적으로 풀기 힘들었던 난이도 1 ~ 10단계로 정리해보았고,
각 문제에서 사용되는 중요한 문법들을 정리해보았다.
향후, 다시 문법을 찾아보는데 수월해지지 않을까? 하는 개인적인 생각이든다.
[ SQL 문제]
https://kagan-draca.tistory.com/10
중복 제거하기(난이도 9)(COUNT, DISTINCT, NOT IN)
기존에는 문제와 테이블을 모두 직접 작성하는 방식으로 글을 작성 했는데, 시간이 너무 오래 걸려서 이제부터는 문제와 테이블을 이미지로 캡쳐해 올리는 방식을 선택하게 되었다. DISTINCT(중
kagan-draca.tistory.com
https://kagan-draca.tistory.com/11
동물의 아이디와 이름(난이도 1)(ORDER BY)
옛날에 데이터베이스 시간에 배웠던 ORDER BY 필드 (오름차순 ASC, 내림차순 DESC)가 생각나 쉽게 풀 수 있었다.하지만, 기능을 지식으로 알고 있는 것과 문제로 직접 사용해보는 것은 깊이 감이 다르
kagan-draca.tistory.com
https://kagan-draca.tistory.com/12
동물 수 구하기(난이도 3)(COUNT)
처음에는 동물 보호소에 들어온 동물의 수를 구해야 하니깐, COUNT(NAME)을 사용해서 결과 출력을 시도해보았다.하지만 이름의 변수 타입은 VARCHAR(N), NULLABLE이 TRUE이므로 이름이 없는 동물은 COUNT 되
kagan-draca.tistory.com
https://kagan-draca.tistory.com/13
아픈 동물 찾기(난이도 1)(IN, ORDER BY)
INTAKE_CONDITION = 'SICK'로도 문제를 풀 수 있지만 과거에 배웠던 경험 IN()함수로 문제를 풀어보았다. 제출한 코드 : SELECT ANIMAL_ID, NAME FROM ANIMAL_INS where INTAKE_CONDITION IN('SICK') ORDER BY ANIMAL_ID ASC
kagan-draca.tistory.com
https://kagan-draca.tistory.com/14
상위 N개 레코드(난이도 4)(2중 SELECT문)
처음에 가장 먼저 들어온 동물의 이름을 조회해야 하기 때문에 DATETINE을 where 문에 사용해야 한다는 사실을 깨달았다. 그래서 WHERE MIN(DATETIME)을 한 결과, 오답이 출력됐다. MIN(DATETIME)이 잘못된건
kagan-draca.tistory.com
https://kagan-draca.tistory.com/15
최솟값 구하기(난이도 1)(MIN)
이전 "상위 N개 레크드" 문제에서 SELECT MIN(DATETIME)으로 결과를 출력해보았기 때문에비교적 쉽게 문제를 해결할 수있었다 제출한 코드 : SELECT MIN(DATETIME) as '시간' FROM ANIMAL_INS
kagan-draca.tistory.com
https://kagan-draca.tistory.com/16
동명 동물 수 찾기(난이도 10)(GROUP BY, HAVING, ORDER BY)
문제의 핵심은 이름이 2번 이상 쓰인 동물을 구하는 문제였다. 하지만, 문제를 정확하게 읽지 않아 모든 이름의 횟수를 출력해야 하는 문제로 착각하고 SELECT NAME, COUNT(*) as COUNT FROM ANIMAL_IN
kagan-draca.tistory.com
SQL을 문제를 풀어보며, 기존에 잘못 알고 있던 사용법을 다시 숙지할 수 있었다
(자세한 내용들은 각 사이트에 정리했습니다.)
[JavaScript 문제]
https://kagan-draca.tistory.com/17
숫자 비교하기(난이도 1)
제출한 코드 : function solution(num1, num2) { return num1 == num2 ? 1 : -1; } Java Script에서 처음으로 비교문을 사용해 보았는데 처음에는 if(num1 == num2) return 1;else return -1; 로 C 계열, Java와 동
kagan-draca.tistory.com
https://kagan-draca.tistory.com/18
두 수의 합(난이도 1)
제출한 코드 : function solution(num1, num2) { return num1 + num2; }
kagan-draca.tistory.com
https://kagan-draca.tistory.com/19
두 수의 나눗셈(난이도 1)
제출한 코드 : function solution(num1, num2) { return parseInt(num1 * 1000 / num2); }
kagan-draca.tistory.com
https://kagan-draca.tistory.com/20
각도기(난이도 2)
처음에 조건부 연산자, 삼항 연산자로 문제를 풀어 볼려고 시도하다가, 그냥 if문으로 방향을 바꿨다. 실수로 && 연산자를 사용하지 않아 오답이 출력됐다. 제출한 코드 : function solution(angle) {
kagan-draca.tistory.com
https://kagan-draca.tistory.com/21
짝수의 합(난이도 4)(변수 선언 방법(var, let, const))
처음에 for문에 사용되는 변수를 C 계얼 언어, Java 언어처럼 int i로 선언 했는데 오류가 발생했다.알고보니, JavaScript에서는 변수 선언을 var, let, Const 3가지로만 사용한다는 사실을 알게 됐다. var은
kagan-draca.tistory.com
https://kagan-draca.tistory.com/22
배열의 평균값(반복문 형태, 배열의 길이)
for(let i = 0; i 로 answer에 numbers가 저장하고 있는 정수 배열들을 모두 더할 수도 있었지만,for문의 다양한 종류를 바탕으로 풀기에 도전했다. for, while, do while문은 모두 사용할 수 있었고, C#에서 for
kagan-draca.tistory.com
JavaScript 문법으로 문제를 풀어보며, C, C++, C#, Java와 사용법이 다른 문법들이 존재했다.
특히 변수 선언이 굉장히 파이썬 같으면서도 독특했다. 또한, 반복문의 종류가 굉장히 다체로웠으며
.forEach()문은 C#의 where()문과 유사하지만 조금 다른 느낌이 들었다.
향후, JavaScript 강의를 바탕으로 하루 빨리 제대로 된 문법 사용법들을 익혀야겠다는 생각이 들었고,
제발 파이썬 처럼 일관성, 줏대 없고 암묵적 허용이 많은 문법이 아니길 바랄 뿐이다...
(자세한 정리는 각 사이트에 존재 합니다.)