Airport API 공항이름 자동완성 클라이언트에 공항 이름을 검색할 때, 자동 완성 기능이 동작하게 하는 API http://localhost:3001/airport?query=c 에서 req.query 는 http://localhost:3001/airport?query=c 노란색 부분인 qeury=c를 의미하고 req.query.qeury는 http://localhost:3001/airport?query=c 빨간 부분인 c를 의미한다. 즉 요청객체의 쿼리 파라미터에 글자를 추가하면 해당 문자열이 포함된 공항목록을 보여준다. 위 예제로 get요청을 보낸 뒤 console.log(req.query.qeury)를 확인해보면 터미널에서 확인 할 수 있다. 공항 목록에서 c가 포함된 공항목록을 볼 수 있다...
🏋🏽문제 수를 입력받아 제곱근의 값을 소수점 두 자리까지 리턴 🔍나의 풀이 function computeSquareRoot(num) { return Number(Math.pow(num,0.5).toFixed(2)) } Math.pow는 첫번째 인자의 두번째인자제곱인 값이다. 즉 Math.pow(2,4)일때 2의 4제곱인 것이다. 제곱근은 해당숫자의 2분의 1제곱이므로 첫번째 숫자로 전달받을 변수이름을 두번째 인자로 2분의1을 의미하는 0.5를 넣어준다. 조건에서 소수점 두자리까지 반올림하라고 하였으니 toFixed메소드를 사용한다. 💡알게된 점 Math.pow 메소드를 알기 전까지 2시간 가량 바빌로니아 법의 점화식과 제곱근가지고 어떻게 코드를 써야할지 머리를 싸맸는데 이런 메소드가 있으면 얼마나 좋을까..
🏋🏽문제 문자열을 입력받아 알파벳을 한번씩만 이용해서 만든 단어나 문구인 아이소이그램인지 여부 리턴 🔍나의 풀이 한 문자열 내에 같은 알파벳이 있으면 안되니까 이중반복문을 사용해서 하나씩 검사했을때 같은 알파벳 발견시 바로 false를 리턴하는 로직 구현 💡깨달은점 레퍼런스를 보니까 빈 객체를 선언해주고 빈 객체에 값으로 boolean 값을 주고있었다. 이중반복문을 이용안해도 되는 너무나도 편리한 객체의 이용법....! 객체 활용을 잘하자..!
🏋🏽문제 두수(num1,num2) 를 입력받아 num1을 num2로 나눈 나머지를 리턴한다. 🔍나의 풀이 num2는 num1을 여러번 곱했을때 num2보다 작은 상태에서 그 값을 빼주면 나머지가 될거라 생각(복잡..) 1. 일단 조건에 있는 num2가 0일때 경고문 문자열 작성 2. num1이 0일때(0은 무슨수로 나누든 나머지0) 또는 num1과 num2가 같을때는 0을 리턴 3. 반복문을 돌려서 몫을 구함 4. 조건이 맞을때 무조건 1이 더해지므로 5. num1에서 num2를 몫인 n-1번 곱한것을 뺀것은 나머지 값이다! 💡알게된 점 복잡하게 쓴 나의 로직은 오늘도 레퍼런스에 패해버렸고! 테스트 패스하는것에만 일단 신경쓰라는 말을 되뇌이어봅니다..
🏋🏽문제 각 요소가 이전 요소들의 합보다 큰지 여부를 리턴 🔍나의 풀이 누적값을 설정하고 반복문을 돌때마다 해당 요소가 누적값(이전 요소들의 합)보다 같거나 작은지 검사한다. 1. 배열의 첫번째 요소를 누적값의 초기값으로 설정한다. 2. 반복문으로 sum변수에 초기값과 해당요소의 값을 더해준다. 3. 누적되어진 sum값은 if문에서 다음요소의 값보다 크거나 같은지 검사하여 4. 조건이 안맞을 경우 다시 반복문으로 돌아가 누적값을 더해준다. 5. 조건이 맞을 경우 result값을 false로 재할당해주고 6. 바로 반복문을 끝낸다. 💡느낀점 일단 반복문을 돌려야 할것 같았다. 근데 누적값이 필요하니까 reduce도 써봤는데 점점 더 복잡해져갔다. 누적할때마다 if문으로 조건을 걸어서 충족시 바로 break..
🏋🏽문제 문자열을 요소로 같는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴 🔍나의 풀이 처음에 배열의 요소가 2개까지만 들어오는줄 알았다가, 테스트 돌리고나서 뒤늦게 가장 긴 요소를 찾는 조건 추가해줬다.🤯 1. 가장 긴요소의 길이를 찾아서 (Math.max) 배열의 요소중 가장 긴 것을 찾아야 하므로 for문을 돌려 배열에 요소의 길이를 push 해준다. Math.max 메서드로 배열의 요소중 가장 큰 값을 찾아 maxNum에 할당해준다. 2. 2중 for문으로 문자열을 만들어 준다. 가장 긴 문자열의 길이만큼 돌면서 배열의 길이만큼 각 요소를 돌아 해당 문자열을 더해준다. 3. 결과값을 리턴한다. 💡 알게된 점 알고리즘도 하다보면 익숙해지는것 같다 점점 레퍼런스를 안보게 된다 감격🥹
🏋🏽 문제 2차원 배열에서 문자열"B"의 위치정보를 요소로 같은 배열을 리턴 🔍 나의 풀이 - indexOf 메소드는 "B"문자열이 배열안에 있으면 인덱스 번호를 아니라면 -1를 반환한다. 1. 배열의 요소를 하나씩 돌면서 2. 요소에 "B"문자열이 존재하는지 검사를 한다. 3. 있다면 빈 배열 result에 요소의 인덱스 번호를 push 4. 그 요소 안의 "B" 문자열의 인덱스 번호를 push 5. result를 리턴한다. 💡알게된 점 - 레퍼런스보다 내 코드가 더 마음에 들 때도 있다!!!!!! - 하지만 indexOf("B")를 두번 써준거에서 레퍼런스한테 패했다 :( 중복을 줄이자~!!!!!!
🏋🏽문제 문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴 🔍나의 풀이 일단 가장 짧은 문자열과 큰 문자열을 알아낸다. 1. arr[i].length는 20 이하라는 조건이 있었으므로 2. 반복문을 돌리면서 조건보다 같거나 작으면 해당 배열의 길이와 인덱스 번호를 변수에 저장한다. 3. 가장 긴 문자열도 반복문을 돌리면서 조건보다 같거나 크면 해당 배열의 길이와 인덱스 번호를 변수에 저장한다. 매개변수로 받은 배열에 for문을 돌려서 1. 해당 요소의 값이 최소길이 문자열과 같은데 자리가 다를 경우 배열에 추가 2. 해당 요소의 값이 최소, 최장문자열과 다르다면 배열에 추가 완성된 result값을 리턴 사실 이 코드는 똥인데 테스트 통과하기 위해서 우겨넣었다 ..
🏋🏽 문제 문자열을 입력받아 연속된 한자리 홀수 숫자 사이에 '-'을 추가한 문자열 리턴 🔍 나의 풀이 - 문자열을 한 글자씩 돌면서 - 짝수일경우 그대로 result에 추가 - 홀수일경우 다음글자도 홀수라면 하이픈과 함께 result에 추가 - 누적된 result값 리턴 - 아무래도 마지막 문자열의 다음 문자열이 없는데 if문에서 검사하는게 찝찝해서(?) 새로 짜본 코드 - 첫 문자열은 무조건 출력 - 두번째 문자열부터 돌면서 짝수일경우 result에 그대로 추가 - 홀수일경우 이전문자열 역시 홀수라면 결과값에 "-"를 숫자 앞에 붙여 result에 추가 - 누적된 result값 리턴 💡 깨달은점 - 두번째 풀이를 하면서 자바스크립트의 자동형변환 ㅡㅡ 을 다시금 느꼈다. 편하면서 편하지 않은 형 변환...
🏋🏽 문제 문자열을 입력받아 문자열 아래에 아래 중 하나가 존재하는지 여부를 리턴 1. 'a'로 시작해서 'b'로 끝나는 5의 문자열 2. 'b'로 시작해서 'a'로 끝나는 5의 문자열 🔍 나의 풀이 1. 대소문자를 비교하지 않는다고 하였으므로 모두 소문자로 바꿔준다. 2. a와 b자리의 위치를 for문을 이용해 찾아 변수에 할당한다. 3. 각 위치값의 차가 절대값 4인지 여부에 따라 boolean값 리턴 🔍 레퍼런스 1. n+4의 위치가 a고, n의 위치가 b일때 2. 혹은 그 반대일때 3. boolean 값 리턴한다. 오.....간단해... 💡알게된점! 절대값 구하기 Math.abs