항해일지
[TIL]온보딩 스터디 Day 08 (알고리즘 문제풀이) 본문
알고리즘 문제 1-2 일차
Day1 [짝수의 합]
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
function solution(n) {
var answer = 0;
for (i = 0; i <= n; i++) {
if (i % 2 === 0){
answer += i;
}
}
return answer;
}
Day2 [양꼬치]
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
function solution(n, k) {
var answer = 0;
if(n >= 10){
k -= Math.floor(n/10)
}
answer = (n*12000)+(k*2000)
return answer;
}
정적 Math.floor()메서드는 항상 내림하고 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다.
Day2 [점위치 구하기]
사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
function solution(dot) {
if(dot[0] > 0 && dot[1] > 0){
return 1
}else if(dot[0] < 0 && dot[1] > 0){
return 2
}else if(dot[0] < 0 && dot[1] < 0){
return 3
}else if(dot[0] > 0 && dot[1] < 0){
return 4
}
}
Day2 [옷가게 할인 받기]
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
function solution(price) {
if(price >= 100000 && price < 300000){
return Math.floor(price*0.95)
}else if(price >= 300000 && price < 500000){
return Math.floor(price*0.90)
}else if(price >= 500000){
return Math.floor(price*0.80)
}else {
return price
}
}
이문제는 조건을 큰수(50만원부터) 조건을 시작했으면 코드가 조금더 간결해 졌을거다. 문제를 있는 그대로 받아드려 문제를 풀어 코드가 지저분해 보인다.
Day2 [제곱수 판별하기]
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
function solution(n) {
let a = Math.sqrt(n)
if(a === parseInt(a))
return 1
else
return 2
}
제곱수에 대한 메소드를 공부해보았다.
sqrt() 는 특정숫자의 제곱근 값을 계산해주는 함수입니다.
느낀점
메소드의 지식이 많아져 좀더 자유롭게 메소드를 활용할 수 있다면 알고리즘을 푸는데 가장큰 어려움을 해결할수 있을거같다. 문제에 대한 독해도 아직은 많이 부족하다고 생각된다.
이번주에는 알고리즘문제를 연습을 많이해 문제에 대한 이해와 문제해결을 빨리 해결하는데 중점을 두고 공부해야겠다.
아직은 활용할 수 있는 최적의 메소드를 찾는데 시간이 조금 걸린다.
'항해99 > TIL' 카테고리의 다른 글
웹개발 종합반 4일차 (0) | 2023.03.23 |
---|---|
웹개발 종합반 1일차 (0) | 2023.03.20 |
[TIL]온보딩 스터디 Day 06 (0) | 2023.03.12 |
[TIL]온보딩 스터디 Day 05 (객체) (0) | 2023.03.11 |
[TIL]온보딩 스터디 Day 04 (함수) (0) | 2023.03.09 |
Comments