이번에 코테를 준비하면서 알고리즘 강의를 끊었다.
수학적으로 생각했을 때 단순히 돌파해서 창의적으로 한다기보다는
이미 잘하는 분들의 접근법을 익히고, 그 이후에 내 창의력을 더하는 것이
더 효율적이라고 생각했다.
정리하는데 있어서는 내가 필요하다고 생각한 부분들만 정리했다.
이유는 문제 풀이와 좋았던 로직 위주로 정리했다.
삼각형이 가장 긴 값은 나머지 2개의 합보다 작아야한다는 전제로 문제에 접근했다.
function solution(a, b, c){
let answer="YES", max;
let tot=a+b+c;
if(a>b) max=a;
else max=b;
if(c>max) max=c;
if(tot-max<=max) answer="NO";
return answer;
}
초기값 세팅을 할 때 'yes'로 잡아두는 부분을 다시 한번 상기하고자 적었다.
연필 1다스에 갯수는 12개이므로 학생 인원수당 몇다스를 할당해야하는가에 대한 문제였다.
연필이 남게 줘야 형평성있게 나눠주어서 ceil을 사용하였다.
function solution(n){
let answer;
answer=Math.ceil(n/12);
return answer;
}
math.ceil은 올림, floor는 내림, round는 반올림이다.
최솟값 구하기이다.
function solution(arr){
let answer, min=Number.MAX_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
if(arr[i]<min) min=arr[i];
}
answer=min;
return answer;
}
let arr=[5, 7, 1, 3, 2, 9, 11];
console.log(solution(arr));
Number.MAX_SAFE_INTEGER라는 로직이 특이했다.
최대값을 넣는 것이다.
Number.MIN_SAFE_INTEGER 최소값도 존재한다.
메소드를 사용하면 더 빠르게 구할 수 있다.
arr이라는 배열이 있다면
Math.min(...arr)
Math.max(...arr)
식으로 빠르게 구할 수 있다.
Math.min.apply(null, arr)로도 표현할 수 있다.
처음으로 알고리즘 강의를 들어봤는데,
첫단원이라서 가볍게 풀고 넘어갔다.