A Developing Developer
DAY 12. JavaScript 올인원, 타임 어택 1회차 본문
내배캠 4기 Node.js 12일차
어제 개판이였던 컨디션은 평소의 컨디션으로 회복했다.
아침에는 '자바스크립트 문법 뽀개기' 였던것 같은 강의 제목이...
'JavaScript 올인원' 으로 바뀐거 같은데... 뭐 강의내용은 같았고, 복습을 했다.
뭔가 어려운 개념은 없이 기본만 강의내용으로 구성되어있는지 어렵지는 않았다.
오후에는 내배캠 4기 최초의 '타임 어텍' 이 급습했다.
15:30~17:30, 두시간 시간 동안 문제 4개를 풀어내는 시간이였다.
1회차라 그런지 지난주에 있었던 알고리즘 수업보다는 훨씬 쉬운 수준이였다.
(그렇다고 100% 다 풀고 정답을 코딩하지는 못했다...)
저녁에 남은시간에는 어제 컨디션이 나빠서 못했던 호이스팅을 정리해보았다.
============================================================================================
- '타임 어택' 1회차
Q1. 각도
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록, solution 함수를 완성해주세요.
function solution(angle) {
let answer = 0;
if (angle < 90 && angle > 0) {
return 1
} else if (angle === 90) {
return 2
} else if (angle > 90 && angle < 180) {
return 3
} else if (angle === 180) {
return 4
} else {
alert('angle 값은 0초과 180 이하로 입력해주세요.')
}
return answer;
}
정답을 맞추고 다른 정답을 본게있는데, 코드 한줄로 같은 결과를 도출하는 놀라움을 보았다. 내일 K 튜터님께서 정답 강의를 해주신다고 했으니, 아마 나오지 않을까 싶다.
Q1 은 검사 결과 정답이였다.
Q2. 옷가게 할인
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
function solution(price) {
let answer = 0;
if (price > 1000000) {
return alert('price 값은 1000000 이하로 작성해주세요.')
} else if (price < 100000) {
return price
} else if (price >= 100000 && price < 300000) {
return Math.floor(price * 0.95)
} else if (price >= 3000000 && price < 500000) {
return Math.floor(price * 0.9)
} else if (price >= 500000) {
return Math.floor(price * 0.8)
} else if (price < 10) {
alert('price 값은 10 이상 입력해주세요')
} else {
alert('price 값은 1000000 이하 입력해주세요.')
}
}
코드를 완성하는건 어렵지는 않았는데, 검사를 해본 결과 특정 테스트 값이 '런타임 오류' 가 발생했다. 결국 오답이였다.
관련해서는 내일 K 튜터님의 강의를 보고 다시 해봐야겠다.
Q3. 369 게임
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록, solution 함수를 완성해보세요.
function solution(order) {
let answer = 0;
let cnt = 0;
let str_order = String(order)
for (let i = 0; i < str_order.length; i++) {
if (str_order[i] === '3' || str_order[i] === '6' || str_order[i] === '9') {
cnt+=1
}
}
return cnt
}
입력받은 매개변수인 숫자를 문자열로 바꿔서 문자열의 index 의 숫자를 비교해서 3,6,9 가 있으면 cnt 를 늘려주는 방식으로 코딩해 보았다. 검사 결과 정답이었다.
Q4.로그인
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
function solution(id_pw, db) {
let answer = '';
for (let i = 0; i < db.length; i++) {
if (id_pw[0] === db[i][0]) {
if (id_pw[1] === db[i][1]) {
return "login"
} else {
return "wrong pw"
}
}
}
return "fail"
}
매개변수가 배열로 구성되어있는데, 각 id 와 pw 의 index 를 비교해서 db 값과 같다면 "login" 비밀번호가 틀리면 "wrong pw" 아이디가 틀리면 "fail" 를 리턴한다. 검사 결과 정답으로 나왔다.
============================================================================================
Javascript 수준이 오늘 '타임 어택' 수준이면 좋겠지만, 기초 중의 기초라는걸 알고 있다.
내가 코딩해서 정답이라고 나올 정도니까...
그리고 훨씬 효율적인 간결한 코드들도 많을 것 같다.
오늘은 마무리하고, 내일 있을 DB 특강과, 오늘 '타임 어택' 해설강의 수강 준비도 잘 해야겠다.
'내일배움캠프 4기 > TIL' 카테고리의 다른 글
DAY 14. H 튜터님 RESTful AIP 특강, J 튜터님 html, css, javascript 특강 (0) | 2022.12.01 |
---|---|
DAY 13. K 튜터님 타임어택 1회차 해설, J 튜터님 DB 특강 (0) | 2022.11.30 |
DAY 11. 알알알 복습, W 튜터님 Javascript 특특강 (+머리아픔이슈) (0) | 2022.11.28 |
DAY 10. K 튜터님 자료구조_알고리즘 강의 (3/3), cs 특강(HTTP (0) | 2022.11.25 |
DAY 9. K 튜터님 자료구조_알고리즘 강의(2/3), 알고보면 알기쉬운 알고리즘 - 3 (0) | 2022.11.24 |