투 포인터 알고리즘, 슬라이싱 윈도우 이전 문자열과 해싱이나 1차원 배열 같은 경우 구현 문제들이었다.(물론 효율적으로 풀어야 되는 문제들도 있었다.) 현재 투 포인터 알고리즘 카테고리를 학습하면서 수학적인 사고가 필요한 부분들이 많아졌다. 이전엔 문제에 주어진대로 풀다 보니 시간 복잡도를 생각하지 못했다. O(N3)까지 쓰면서 문제를 해결에만 집중했다. 하지만 알고리즘 스터디와 공부를 진행하다 보니 어려운 문제를 굉장히 수학적인 방법으로 간단하게 푸는 방식을 보면서, 알고리즘이 왜 중요한지 알 수 있었다. 이제는 O(N3)을 어떻게 O(N)으로 풀어낼 것인가를 조금이나마 고민하게 됐다. N의 조건이 100,000 정도가 넘어갈 때, 시간복잡도가 N2이 되면 문제가 생길 수도 있다. (참고) 따라서 더욱..
1차원 배열 01. 수열 축소 slice : slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다. begin음수 인덱스는 배열의 끝에서부터의 길이를 나타냅니다. slice(-2) 는 배열에서 마지막 두 개의 엘리먼트를 추출합니다.begin이 배열의 길이보다 큰 경우에는, 빈 배열을 반환합니다. begin이 undefined인 경우에는, 0번 인덱스부터 slice 합니다. 0을 시작으로 하는 추출 시작점에 대한 인덱스를 의미합니다. end예를 들어, slice(1,4)는 두번째 요소부터 네번째 요소까지 (1, 2 및 3을 인덱스로 하는 요소) 추출합니다.end가 생략되면 slice()는 배열의 끝까지..
21.10.28 오타, 내용 수정 1. 문자열 해싱 01. 문자열 압축 처음 접근: 해당 idx와 그 다음 idx 값이 같을 때, cnt의 개수를 for문으로 구해주고 answer에 str[i]와 String(cnt)를 붙여주는 방식으로 하려 했다. 하지만 계속 원치 않는 문자열이 추가가 됐다. 풀이 : 어느 부분에서 오류가 발생하는지 생각하기 어려웠다. 그 이유는 입력받은 문자열에서 직접 몇 번째 idx에 접근하는지를 처리하려고 하니 어려웠던 것 같다. 대신 cnt만 세주고 문자가 달라질 때, 새로운 문자열에 넣는 방식으로 생각하니 for문에서 처리하는 로직이 간단해졌다. JS에서는 새로운 배열에 필요한 값만 넣는다고 생각하면 쉽다. 내 풀이 function solution(str) { let answ..
- Total
- Today
- Yesterday
- 42서울
- vscode commit vi
- css
- c언어 함수
- 백준
- JS
- 42서울 합격
- vscode
- windows 10 ubuntu
- 알고리즘
- 42seoul
- C언어
- 42서울 라피신
- C언어 문제
- 42서울 합격 후기
- C언어문제
- 자바스크립트
- JavaScript
- HEXO
- c언어알고리즘
- Git
- 마크다운 이미지 업로드
- git vi
- 프로그래머스 코딩테스트
- 프로그래머스 코테
- React
- 프로그래머스 카카오
- html
- flexbox
- 프로그래머스 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |