반응형

전체 글 357

4.연속부분수열2(Two Pointers Algorithm)

📌강의 정리 앞의 문제보다 조금 더 어렵다. lt, rt 두개의 포인터를 이용해서 풀어보자 lt=rt=0이기에 sum은 0이고 이제 lt는 가만히 rt는 오른쪽으로 증가해서 sum은 4가 된다. 새롭게 숫자가 추가되면 그 숫자를 포함한 연속부분수열을 구해야 한다. 3이 추가되면 3과 1,3을 구해야 한다. 그래야 중복을 회피하며 구할 수 있다. 그 다음으로 다시 1이 추가되면 1이 포함된 연속부분수열을 구해야 한다. 이런식으로 반복하면 되는데 그 수는 rt-lt+1을 하면 된다. sum이 m보다 커지면 lt가 증가하며(- -)sum을 구해준다. 즉, rt가 증가하면서도 구하고 lt가 빠지면서도 구해야한다. 추가되면 무조건 최소 한개는 있다. 이 문제의 핵심은 부분수열을 구해야하는 구간을 정해주고 그 구간..

[항해99] TIL 사전과제 스터디 D-28

생각보다도 더 시간이 짧았다. 내일이 마감일인데 남은게 많다. 그래도 일단 구현이 다 끝나지는 않았지만 api, GET, POST에 대해 이해했고 이제 openAPI에서 GET방식으로 왜, 어떻게 보내는지 조금은 알 것 같다. 왜 restfulAPI인지도 진짜 문틈을 살짝 열은 만큼만 알겠다. 열었다는게 중요한거지.. 우선 내일은 다 구현하는것과 새로운 프로젝트에 대한 계획을 짜야겠다. 록 그 록(3일차) bs4와 셀레니움과 라프텔 라프텔이 뭔가 크롤링을 막는 기능을 추가한 것 같다. 덕분에 bs4를 하다가 셀레니움을 하다가 결국 다른 주제로 바꾸기로 결정했다.. 오류내용은 body태그까지는 크롤링이 되는데 그 이후부터 크롤링이 안되는 것이다. None으로 나오거나 []으로 나온다. 아무리 시도해도 안되..

항해99 2022.06.15

13. 리액트 라우터로 SPA 개발하기

SPA란? SPA는 Single Page Application(싱글 페이지 애플리케이션)의 약어입니다. 말 그대로 한 개의 페이지로 이루어진 애플리케이션이라는 의미입니다. 전통적인 웹 페이지는 다음과 같이 여러 페이지로 구성되어 있습니다. 기존방식 다른 페이지로 이동할 때 마다 새로운 html, 페이지 로딩 시 서버에서 리소스 전달받아 해석한 뒤 화면 보여줌 사용자에게 보이는 화면은 서버 측에서 준비. 유동적인 html 생성해주는 템플릿 엔진 사용 서버 측에서 모든 뷰를 준비한다면 성능상의 문제가 발생 바뀌지 않은 부분까지 새로 불러와 불필요한 로딩이 있어 비효율적 Single Page Application: 말 그대로 한 개의 페이지로 이루어진 애플리케이션 뷰 렌더링을 사용자의 브라우저가 담당. 애플리..

Chrome으로 디버깅하기

좀 더 복잡한 코드를 작성하기 전에, 디버깅이란 것에 대해 이야기해봅시다. 디버깅(debugging)은 스크립트 내 에러를 검출해 제거하는 일련의 과정을 의미합니다. 디버깅 툴을 사용하면 디버깅이 훨씬 쉬워지고, 실행 단계마다 어떤 일이 일어나는지를 코드 단위로 추적할 수 있습니다. 이 글에선 Chrome 브라우저에서 제공하는 디버깅 툴을 사용하도록 하겠습니다. 기능이 다양하고, Chrome에 익숙해지면 다른 브라우저에서 지원하는 디버깅 툴은 쉽게 익힐 수 있기 때문입니다. ‘Source’패널 F12(MacOS: Cmd+Opt+I)를 눌러 개발자 도구를 엽니다. Sources 패널을 처음 열었다면 아래와 같은 화면이 보일 겁니다. 토글 버튼 을 누르면 navigator가 열리면서 현재 사이트와 관련된 파..

3.연속부분수열1(Two Pointers Algorithm)

📌강의 정리 투포인터 모르면 이중포문 쓸 것이다. 그러지 말자 이준포문이면 n^2알고리즘이 된다. 투포인터는 단일 포문으로 풀 수 있다. 포인터 변수는 lt,rt이다. lt는 가만히 있고 rt만 더해가며 M인지를 확인해간다. rt가 변하다 M을 넘으면 lt를 증가시켜 다시 확인하고 같아지면 다시 lt를 움직인다. rt가 증가하든 lt가 증가하든 6인지는 확인을 해야한다. 이렇게 알고리즘을 탐색하다가 rt가 끝나면 탐색이 끝난 것이다. rt는 for문돌릴때 기준으로 돌린다. 이제 코드로 알고리즘을 짜면 sum+=arr[rt]; 로 rt를 계속 더하게 한다. 이때 매순간 M과 같은지 if문을 통해서 짜준다. sum-=arr[lt++]; if(sum===m) answer++; 으로 같은지 확인을 하고 whil..

[항해99] TIL 사전과제 스터디 D-29

소크라테스 논증법 적어도 나는 내가 말한걸 지켜야하는데 안 지키고 있던걸 깨달았다. 계기는 알고리즘 테스트의 언어 이슈와 플랫폼문제였다. 지금까지는 텍스트로만 해서 정답을 풀어도 정답인지 알 수 없었다. js는 프로그래머스에서는 지원하지만 백준은 지원하지않고 프로그래머스는 난이도가 상향평준화되어있다. 백준은 난이도가 고루 분포되어있지만 js로 못한다. 나는 파이썬을 할 필요가 없다고 생각했다. 그러면서 계속 파이썬을 깠는데 그 이유는 아무리 항해99에서 파이썬으로 알고리즘을 해도 결국 실전에는 js 혹은 java를 써야한다는 점 코딩테스트로 취업하면 파이썬이 좋지만 지금 우리 단계에서는 불확실하다는 점 을 들었는데 팀원분들중 한분이 전에 내가 백엔드라고 프론트엔드를 아예 안배우면 안된다고 말했던건 지금 ..

항해99 2022.06.14

기본 문법 요약

코드 구조 여러 개의 구문은 세미콜론을 기준으로 구분할 수 있습니다. 코드 블록({...} )이나 코드 블록과 함께 구성되는 문법(예: 반복문) 끝엔 세미콜론을 붙이지 않아도 괜찮습니다. 엄격 모드 'use strict'는 스크립트 최상단이나 함수 본문 최상단에 있어야 합니다. 'use strict'가 없어도 코드는 정상적으로 동작합니다. 다만, 모던한 방식이 아닌 옛날 방식으로 동작하죠. '하위 호환성’을 지키면서 말이죠. 될 수 있으면 모던한 방식을 사용하는 걸 추천해 드립니다. 변수 변수는 아래와 같은 키워드를 이용해 선언할 수 있습니다. let const – 한 번 값을 할당하면 더는 값을 바꿀 수 없는 상수를 정의할 때 쓰입니다. var – 과거에 쓰이던 키워드로 자세한 내용은 추후에 다룰 예정..

12. immer를 사용하여 더 쉽게 불변성 유지하기

Immer 설치 yarn add immer 핵심 : 불변성에 신경 쓰지 않는 것처럼 코드를 작성하되, 불변성 관리는 제대로 해주는 것 단순하게 깊은 곳에 위치하는 값을 바꾸는 것 외에도 배열을 처리할 때도 쉽다. concat 이나 ...연산자 말고도 push, splice로 관리 가능 예시 코드 import produce from 'immer'; const nextState = produce(originalState, draft => { // 바꾸고 싶은 값 바꾸기 draft.somewhere.deep.inside = 5; }) produce라는 함수는 두 가지 파라미터를 받습니다. 첫 번째 파라미터는 수정하고 싶은 상태이고, 두 번째 파라미터는 상태를 어떻게 업데이트할지 정의하는 함수입니다. 두 번째 ..

2.공통원소구하기(Two Pointers Algorithm)

📌강의정리 이중포문을 이용해서 하면 되긴 하지만 투포인터를 배웠으니 투포인터를 해보자. arr1,2를 정렬한다. 정렬후 투포인터로 비교하며 같은경우를 push를 하는데 다른경우는 작은경우의 포인터를 증가시킨다. 작은값을 증가시켜야 나중에 같은값을 다시 매칭시킬 수 있지 큰 값을 증가시키면 반대편에 같은값이 있었을 수도 있다. arr1.sort()로 정렬해준다. while문으로 조건을 arr1,arr2가 그 배열의 길이보다 작을때로 맞춰주고 같은경우 push로 앤서값에 넣어주고 나머지는 else if , else로 포인터를 증가시켜준다. sort()는 배열을 문자열로 정렬하기때문에 우리가 원하는 숫자의 정렬이 안된다. 따라서 안에 함수를 새로 설정해주어서 우리가 원하는 방식으로 정렬되게해야한다. arr1...

사천왕 마라탕면

예전에 여자친구는 마라탕을 좋아한다. 하지만 마라탕을 먹고 싶을때마다 먹을 수는 없다. 여자친구가 말은 안했지만 왠지 그게 한이 된 것 같다.. 어느순간 마라탕 한 개가 항상 구비되어 있었다. 예전에 굴비를 매달아놓고 밥먹을때마다 봤듯이 나는 서랍을 열때마다 마라탕을 보았다. 나중에 성공하면 꼭 1일 1마라탕을 해줘야겠다… 이번에 그 굴비를 그 마라탕을 드디어 먹어봤다. 솔직히 전에 다른 마라탕컵을 체험해봤기에 별기대는 안했다. 하지만 웬걸 이놈은 달랐다. 알싸한 이 맛 나도 마라탕을 꽤나 좋아하게 만들어진..좋아하게 된.. 좋아한다. 그래서 시중의 다양한 마라탕들을 먹어봤지만 마라탕은 그 격차가 매우 심하다. 그래서 마라러버들끼리는 자신의 취향에 맞는 집을 발견하면 “성공했다!”라고 외치는 관습이 있다..

리뷰 2022.06.13
반응형