본문 바로가기

Development/TIL

(56)
JS의 비동기적 처리 (근데 이제 Non - Blocking을 곁들인) 문제 항해99 3주차에 접어들었다. 앞으로 장장 3주 동안 주특기를 연마하게 된다. 나는 node js를 선택했다. 자바스크립트의 대표적인 특징은 비동기적 처리를 한다는 것이다. Sync(동기) & Async(비동기)의 개념에 대해서 흐릿하게 알고 있었는데 이번엔 제대로 짚고 넘어가야겠다는 생각이 들었다. 시도 영상 강의를 통해 학습을 진행했다. 동기 & 비동기의 개념에 대해 상세하게 설명이 진행되었는데 깊이 들어가니 더 헷갈렸다. 게다가 처음 들어보는 Blocking & Non-Blocking에다 promise, await까지...... 동기 비동기 개념을 확실히 짚고 넘어가야겠다는 의지가 꺾이는 순간이었다. 하지만 이번에 제대로 학습하지 않으면 부채는 점점 쌓여갈 것이기 때문에 영상과 노션 자료를 토..
TIL(feat.프로그래머스 1차 비밀지도) 문제 항해99 본과정 알고리즘 주차 마지막 날이다. 프로그래머스 1차 비밀지도 문제에서 막히는 부분이 발생했다. 주어진 숫자를 이진법으로 변환해서 활용해야하는데 문제는 이진법으로 변환한 숫자를 주어진 길이인 n만큼 맞춰줘야한다는 것이었다. 예를들면 n = 5 였을 때 숫자 9를 이진법으로 변환하면 1001이 된다. 1001의 길이는 4이기 때문에 조건을 맞추려면 앞에 0을 붙여줘야한다. 하지만 아무리 해도 앞에 0이 붙지 않았다..... 문제링크 시도 function solution(n, arr1, arr2) { let arr1Binary = []; arr1.map((a) => arr1Binary.push(a.toString(2))) let arr2Binary = []; arr2.map((a) => ar..
소수 구하기 (feat.에라토스테네스의 체) 문제 오늘도 어김없이 난관에 봉착 프로그래머스 소수 찾기에서 효율성 통과에 어려움을 겪었다. 문제링크 시도 function solution(n) { let answer = 0; function isPrime(sum) { for (let i = 2; i
문자열과 영단어 문제 프로그래머스 숫자 문자열과 영단어 문제를 푸는 중 난관에 봉착하였다. 주어진 문자열에 포함된 숫자에 대응되는 영단어를 숫자로 치환해 반환하면 되는 문제였다. 문제링크 시도 function solution(s) { let word = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] for (let i = 0; i < word.length; i++) { s.split(word[i]).join(i) } return s } 각 숫자에 대응되는 단어로 이루어진 배열을 할당하여 for문으로 반복하며 word의 i번째 요소로 split이 되면 다시 i로 붙여주는 방식이었지만 전혀 치환이 되지 않았다. 두번째 시도 f..
N진법 변환 문제 이번주까지 알고리즘 주차라서 열심히 프로그래머스 문제를 풀고 있었는데 3진법 뒤집기라는 문제가 나왔다. 문제링크 우리가 평소 사용하는 숫자가 10진법 숫자라는 것은 알고 있지만 이것을 다른 n진법으로 변환하는 것에는 지식이 전무한 상황이었다. 시도 자바스크립트 n진법 변환에 대해서 구글링을 해보았다. 의외로 아주 간단하게 변환이 가능했다. 10진수 > n진수 변환, n진수 > 10진수 변환 let numbers = 1022 let nNumbers = numbers.toString(n) // n진법으로 변환 let toNumbers = parseInt(nNumbers, n) // parseInt의 두번째 인수에 변환할 숫자가 몇 진법을 사용했는지 넣어준다. 해결 function solution(n) ..
match 메소드 문제 프로그래머스 문자열 다루기 기본 문제에서 정규표현식(regexp)을 사용해 주어진 문자열에서 숫자를 걸러내려고 시도했는데 일부 테스트에서 자꾸 에러가 발생 문제 링크 시도 function solution(s) { let reg = s.match(/\d/g); return reg.length === 4 || reg.length === 6 ? true : false } 원래 문자열 s에서 숫자만 골라내서 길이가 4 또는 6이면 true를 반환하고 아니면 false를 반환하도록 했다. 하지만 실패했다. 다음 시도 function solution(s) { let reg = s.match(/\d/g) || []; return reg.length === 4 || reg.length === 6 ? true : ..
다중 배열 문제 항해99 본과정 2주차 알고리즘 페어프로그래밍을 진행하던 중 프로그래머스 행렬의 덧셈에서 난관에 봉착 (무려 연습문제였음) 중첩 for문을 사용해 2차 배열인 배열1과 배열2의 같은 인덱스의 요소끼리 더해서 새로운 배열을 생성해주려고 시도했지만 자꾸 null 요소를 가진 1차 배열만 생성됨 문제링크 시도 function solution(arr1, arr2) { let arr = []; for (let i = 0; i < arr1.length; i++) { let subArr = []; arr.push(subArr[i]) for (let k = 0; k < arr1.length; k++) { subArr.push(arr1[i][k] + arr2[i][k]) } } return arr } 최종적으로 새..
올바른 TIL 작성에 대해 문제 지금까지 TIL이라고 생각하고 작성하던 글들이 모두 잘못되었다는 것을 깨닳았다. 그날 공부했던 것들을 요약 정리하는 것에 그쳤었는데 생각해보니 온전히 내 것이 됐다는 확신이 없다. 확신이 아니라 온전히 이해하고 받아들이지 못하고 있었던 것. 시도 그래서 오늘부터 TIL과 WIL의 전용 카테고리를 생성해서 강민철 튜터님의 조언에 따라 문제 / 시도 / 해결 / 알게된 것 위주로 꾸준히 TIL을 작성해보고자 한다. 해결 바로 해결될 문제는 아니다. 지금부터라도 꾸준히 작성하다보면 어느새 성장해있는 나를 발견하지 않을까하는 기분 좋은 생각을 해본다. 알게된 것 취업 시에 TIL이 생각보다 큰 비중을 차지한다는 것. 이해했다고 생각하고 넘어갔던 것들이 사실은 온전히 내것이 아니었다는 것. 지금이라도 알게되..