알고리즘 테스트 준비 #1

Fury·2022년 10월 20일
0

연필 개수

연필 1 다스는 12자루입니다. 학생 1인당 연필을 1자루씩 나누어 준다고 할 때 N명이 학생수 를 입력하면 필요한 연필의 다스 수를 계산하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 1000 이하의 자연수 N이 입력된다.
▣ 출력설명
첫 번째 줄에 필요한 다스 수를 출력합니다.
▣ 입력예제 1 25
▣ 출력예제 1 3

function solution(n){
                let answer;
                answer = Math.ceil(n/12)
                return answer;
            }

            console.log(solution(178));

Math.ceil

Math.ceil() 함수는 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 integer 로 반환합니다.

자연수 N이 입력되면 1부터 N까지의 합을 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 20이하의 자연수 N이 입력된다..
▣ 출력설명
첫 번째 줄에 1부터 N까지의 합을 출력한다.
▣ 입력예제 1 6
▣ 출력예제 1 21

function solution(n){
                let answer=0;
                    for (let index = 1; index <= n; index++) {
                        answer=answer+index
                    }
                    return answer;
            }

7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 7개의 수가 주어진다.
▣ 출력설명
첫 번째 줄에 가장 작은 값을 출력한다.
▣ 입력예제 1
5, 7, 1, 3, 2, 9, 11
▣ 출력예제 1
1

  function solution(arr) {
        let answer,min = Number.MAX_SAFE_INTEGER;
        for (let index = 0; index <= arr.length; index++) {
          if (arr[index] < min) {
            min = arr[index];
          }
        }
        answer = min;
        return answer;
      }
      
//내장 함수
function solution(arr) {
        let answer=Math.min(...arr)
        return answer;
      }

Number.MAX_SAFE_INTEGER
상수는 JavaScript에서 안전한 최대 정수값을 나타냅니다.
...(전개연산자)
전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있습니다.

10부제
서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금 지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하 지 못한다. 또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한 다.
여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동차의 대수를 세는 봉사활동을 하려고 한다. 날짜의 일의 자리 숫자가 주어지고 7대의 자동차 번호의 끝 두 자리 수가 주어졌을 때 위반하는 자동차의 대수를 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 줄에는 날짜의 일의 자리 숫자가 주어지고 두 번째 줄에는 7대의 자동차 번호의 끝 두 자 리 숫자가 주어진다.
▣ 출력설명
주어진 날짜와 자동차의 일의 자리 숫자를 보고 10부제를 위반하는 차량의 대수를 출력합니 다.
▣ 입력예제 1
3
25 23 11 47 53 17 33
▣ 출력예제 1 3

  function solution(day, arr){
                let answer=0;
                for(let x of arr){
                    if(x%10===day) answer++
                }
                
                return answer;
            }

for of
for...of 명령문은 반복가능한 객체 (Array, Map (en-US), Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성합니다.

*무슨 숫자든 10으로 나누면 나저지는 첫번째 자릿수가 나온다

출처
인프런 자바스크립트 알고리즘 문제

profile
크로스플랫폼 클라이언트 개발자(Flutter) 1년차

0개의 댓글