📘 오늘의 공부
- 알고리즘 특강 (알고리즘 풀이법 기초)
- 알고리즘 문제풀이 (두 수의 곱)
- JS 문법 강의 2회독차
1. 알고리즘 풀이에 필요한 기초 js지식
1) 변수, 상수
2) 조건문
3) 반복문
4) 함수
2. 알고리즘 문제 풀이 과정
<튜터님께서 추천하는 문제 풀이 과정 - 입문편>
1) 큰 틀, 뼈대 생각해보고 직접 작성해보기
2) 뼈대에 로직을 '하나씩' 작성
(한번에 다 하려고 & 한번에 전부 생각하는 행위는 ❌ - 안 좋은 습관)
내가 욕심이 너무 많았구나! 😂 항상 리마인드!!!!
3) 작은 로직들을 하나씩 코드 안에 붙여보기
4) 잘 모르겠으면 ⭐️⭐️연습장 + 필기구를 활용⭐️
(코드가 제대로 돌아가는게 맞는지 검산을 직접 해보기)
(우리말로 의사코드를 적어보는 것도 좋음)
ex) 의사코드
1. 변수 a에 저장을 한다.
2. a의 값을 1씩 증가한다.
5) 목표가 뭐였는지 다시 한 번 상기하기
ex) 아, 문자 몇번 등장하는지 찾는거였지!
5) 로직이 정상적인 것 같으면 다음 로직을 생각해보기
6) 로직을 붙이는 작업을 목표가 달성될 때까지 반복!
(로직의 단위는 생각보다 작을 수 있음!)
🤔 문제 해석
문제
풀이
function solution(num1, num2) {
var answer = num1 * num2;
if (0 <= answer <= 10000) {
return answer;
} else { false };
}
풀이 이유
시도
헷갈렸던 점 : 부등호(작거나 같다, 크거나 같다의 방향 & 꺽새가 왼쪽인지 등호가 왼쪽인지... 이런 사사로운 것들이 막상 직접 쓰려니까 헷갈리더라)
1차 시도 : answer = num1 * num2 그대로 return (이렇게 해도 채점시 통과되긴 함)
숫자 제한사항 발견(num1, num2의 최소값과 최대값)
2차 시도 : 숫자 제한사항을 사이트에서 그대로 복붙
0 ≤ num1 ≤ 100
0 ≤ num2 ≤ 100
(일단 부등호부터 코드에 작성하는 형식이 아니었음 엉망, 쉼표를 넣어야하나? ;를 넣나? 헷갈림)
3차 시도 : 부등호 헷갈려서 <= => =< 의 향연
4차 시도 : 0 <= answer <= 10000 부등호 맞나 아닌가 하다가
answer >=0 && answer <= 10000 작성 -> 성공
5차 시도 : 혹시 몰라 0 <= answer <= 10000 하니까 성공
- 아무래도 손으로 쓰면서 연습하는거 시작해야될 것 같다... 특강 듣고있는데도 풀이를 듣고있는데 이거 분명 쉽게 설명해주고 계신것도 알겠고 문제도 그렇게까지 어려운 문제는 아닌걸 알겠는데... 낯설어서 그런건지 풀이를 많이 안해봐서 그런건지 아직은 풀이도 잘 모르겠고 문제를 봐도 어떻게 풀어야할지 손도 못대는 경우가 많다. 뼈대를 어떻게 세워야할지부터 감이 아예 안오니까 시작부터 막막하기만하다.ㅜㅠㅠ
- 예전에 매니저님께서 손으로 풀면서 많이 늘었다고 하신게 기억나기도 했고, 나한테 맞는 방식으로 & 꾸준히 하기만 하면 분명 늘 것 같다는 생각도 든다. 근데 내 노력이 많이 들어가야할 것 같은 느낌적인 느낌...^^ 화이팅...!
문제에 나오는 제한 사항은 이미 적용된 상태로 인풋으로서 들어온다는 뜻입니다! 굳이 직접 다시 체크해줄 필요는 없어요!!