[TIL]231107_프로그래머스 Lv.0 알고리즘 심기

ㅇㅖㅈㅣ·2023년 11월 7일
3

Today I Learned

목록 보기
20/93
post-thumbnail

👩🏻‍💻 Today Learn

  • 베이직반 javascript 수업
  • TodoList 해설강의
  • 프로그래머스 알고리즘 Lv.0 문제풀이

🤦🏻‍♀️ 고민한 내용

우선 오늘 처음으로 심어본 알고리즘 새싹!

풀었던 문제 중에 조금씩 막혔던 문제 위주로 적어보려고 한다.


문제1) 몫 구하기

문제

정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.

풀이

function solution(num1, num2) {
    let answer = 0;
    answer = Math.floor(num1 / num2)
    return answer;
}

// Math.floor() : 소수점 이하를 버림한다.
// Math.ceil() : 소수점 이하를 올림한다.
// Math.round() : 소수점 이하를 반올림한다.

매우 간단한 문제이지만 Math.floor()에 대해 알 수 있던 문제였다.


문제2) 각도기

문제

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

예각 : 0 < angle < 90
직각 : angle = 90
둔각 : 90 < angle < 180
평각 : angle = 180

풀이

function solution(angle) {
        if (angle < 90) {
        return 1
    } else if (angle === 90) {
        return 2
    } else if (angle < 180) {
        return 3
    } else {
        return 4
    }
}
solution();

일치연산자 ===== 이렇게 사용해서 계속 오류가 났었다.
기본문법 충실하게 다지기!!


문제3) 짝수의 합

문제

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

풀이

function solution(n) {
    answer = 0;
    for (let i = 1; i <= n; i++) {
        if (i % 2 === 0) {
            answer += i; 
        }
    } return answer;
}

for 문을 이용해 반복해서 n 이하의 짝수값을 찾는것 까지는 풀었는데 그 짝수를 모두 더한값을 구하는것에서 막혔었다.
+= 더하기 등호 연산자 로 해결!


✍🏻 회고

기초였지만 알고리즘 문제 자체를 처음 풀어봐서 프로그램 사용법부터 헤맸지만 하다보니 조금 익숙해졌다. Lv.0 중에서도 입문에 해당하는 기초중의 기초이고 앞으로 풀어야 할 문제들이 산더미 처럼 남아있다.
그래도 코드를 작성하고 코드실행을 돌린 후 'ㅁ개 중 ㅁ개 성공' 이라는 문장이 떴을때 느껴지는 약간의 희열을 맛보니까 좋긴했다...ㅎㅎ
React강의를 듣고있긴 하지만 javascript문법이 많이 부족한 만큼 하루에 1시간씩 알고리즘 문제를 풀면서 문법다지는 연습을 해야할 필요성을 느꼈다!!!

profile
웰씽킹_나는 경쟁력을 갖춘 FE개발자로 성장할 것이다.

7개의 댓글

comment-user-thumbnail
2023년 11월 7일

🌳으로 만듭시다.

1개의 답글
comment-user-thumbnail
2023년 11월 8일

알고리즘도 푸시다니 멋지다 멋져요!👍👍

1개의 답글
comment-user-thumbnail
2023년 11월 8일

🔥🔥

1개의 답글
comment-user-thumbnail
2023년 11월 14일

알고리즘도 푸는 것이 정말 멋지네요! doodle baseball

답글 달기