항해에서 이번주부터 자신이 선택한 주특기의 기본 언어로 알고리즘 공부를 시작했다.
나와 같은 자바스크립트를 선택한 다른 팀원분들과 각자 문제를 나누어 풀어보고 공유하기로 했다.
오늘은 공부했던 알고리즘 문제를 공유해보고자 한다.
문제 1번
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
데이터로 받아지는 값을 분리하여 리스트 형태로 만들기 위해 split 함수를 사용하였고,
n이라는 리스트에 담긴 2개의 값을 각각 변수 a,b로 설정하였고 숫자로 변경하기 위해
데이터 타입을 변경해주었다.
직사각형의 가로 길이를 담기 위해 빈값의 starWidth라는 변수를 만들고
이후 b의 값만큼 반복문을 실행해 세로 길이를 만들어주었고,
반복문안에 다시 a의 값만큼 반복문을 실행해 가로 길이를 만들어 주었다.
문제 2번
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
이 문제는 짝수일 때와 홀수일 때 구해야하는 글자의 수가 다르기 때문에 if문을 사용하여 경우의 수를 만들었다.
매개변수로 들어오는 s의 길이를 중간지점을 구하기 위해 Math객체의 floor매소드를 활용하여 s 전체의 길이의 반을 나누어
소수점을 짜르고 정수로 만들었고, 짝수일 경우 s[lengthCheck]의 값과 s[lengthCheck - 1] 값을 합하여 두글자를 반환하였고,
홀수일 경우 s[lengthCheck] 값을 구해 단어s의 가운데 한글자를 구하였다.
문제 3번
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
문제에는 3개의 경우가 존재한다. a > b 일 경우, a < b 일 경우, a = b 인 경우이다.
3가지의 경우를 나누기 위해 if문을 활용하여 3개의 경우를 설정하였다.
a 와 b 사이에 속한 모든 정수의 합을 구하기 위해 1씩 증가하는 반복문을 사용했으며,
a가 b보다 클 경우 i에 b를 할당하고 i가 a보다 커질 때 까지 1씩 증가하며 반복할 때 마다
변수 abig에 abig + 1 을 더하도록 하여 a와 b사이 정수의 합을 구하였고
a가 b보다 작을 경우는 for문의 조건을 반대로 설정하였다.
문제 4번
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한조건
음.. 4번 문제는 너무 쉬워서 놀랐다.
문제 5번
0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
(전체 - 0부터 9까지의 일부가 있는 배열 number)를 하기 위해 0 ~ 9 까지의 수를 더하도록 반복문을
실행해 answer에 45의 값을 담았고, 0부터 9까지의 일부가 있는 배열 number 에 요소들의 값을
하나씩 answer에 빼기를 반복하여 남은 answer의 값을 리턴하도록 하였다.
항해 99 Day 10 - 알고리즘 3일차 (0) | 2021.11.11 |
---|---|
항해 99 Day 09 - 알고리즘 2일차 (0) | 2021.11.09 |
항해 99 1주차 회고 - JWT, API (0) | 2021.11.07 |
항해 99 Day 05 - 미니프로젝트 마무리 (0) | 2021.11.06 |
항해 99 Day 03 - "맨땅에 헤딩" (0) | 2021.11.04 |
댓글 영역