알고리즘🅰/제주코딩베이스캠프 프로그래머스 문제 풀이

[알고리즘 풀이_Lv0] 몫 구하기, 숫자 비교하기, 나이 출력, 각도기

개발조각 2023. 3. 10. 12:37
728x90
반응형

*제주코딩베이스캠프의 JavaScript 알고리즘 100일 챌린지를 참고로 정리하고 있습니다.*

 

몫 구하기

문제


https://school.programmers.co.kr/learn/courses/30/lessons/120805

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

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

 

해결 방안


단순하게 이렇게만 하면 실수로 출력이 된다.

num1 / num2

7 / 2 = 3.5 이런 식으로 요.

 

 

물론 아래와 같은 방법도 있지만

Math.floor(num1 / num2)

 

 

 

비트 NOT 연산자(~ 연산자)를 사용할 수 있습니다.

비트 NOT연산자
0은 1로 1은 0으로 바꾸며 "비트를 뒤집는다" 또는 "비트 반전"이라고 말합니다.

 

  • 5 → 1001
  • ~5 → 비트 0110

뒤집는다.
결론적으로 ~n = -(n+1)

 

~5 // -6
~~5 // 5
~~5.1 // 5
~~5.6 // 5

 

그래서 비트 NOT연산자를 사용해서 아래와 같이 구할 수 있다.

var answer = ~~(num1 / num2);

 

소스코드


function solution(num1, num2) {
    var answer = ~~(num1 / num2);
    return answer;
}

숫자 비교하기

문제


https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.

 

소스코드


function solution(num1, num2) {
    return num1 === num2 ? 1 : -1;
}

 

https://www.youtube.com/watch?v=RMmOU2u-_as&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS 


나이 출력

문제


https://school.programmers.co.kr/learn/courses/30/lessons/120820

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다.

나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.

 

해결방안


2022-age+1 -> 2023-age

 

소스코드


function solution(age) {
    return 2023-age;
}

 

https://www.youtube.com/watch?v=eXr_QkkglrY&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS&index=2 


각도기

문제


https://school.programmers.co.kr/learn/courses/30/lessons/120829

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

각에서 0도 초과 90도 미만은 예각,

90도는 직각, 

90도 초과 180도 

미만은 둔각 180도는 평각으로 분류합니다. 

각 angle이 매개변수로 주어질 때 예각일 때 

1, 직각일 때 

2, 둔각일 때 

3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

 

소스코드


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

 

https://www.youtube.com/watch?v=5hgmbhORUhY&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS&index=3 

728x90
반응형