🐶 문제 주어진 수열 중에서 그 값이 인덱스와 동일한 원소 찾기 ex) 수열 a = {-15, -4, 2, 8, 13}이면 a[2] = 2 이므로 고정점은 2가 됨. 수열은 오름차순으로 정렬되어 있음 고정점이 없다면 -1을 출력함 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 시간 초과가 남 🐶 생각 이 문제 또한 O(logN)의 시간 복잡도를 넘게 되면 시간 초과가 나기 때문에, O(N)의 시간 복잡도를 가진 선형 탐색으로는 풀 수 없다. 따라서 이진 탐색을 구현해야 함! 단순히 이진 탐색 알고리즘을 알기만 하면 쉽게 풀 수 있는 문제이다. 🐶 문제 풀이 import sys N = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readl..
이 문제는 O(logN)으로 알고리즘을 설계하지 않으면 시간 초과가 나오는 문제이다. 따라서 일반적인 for문을 활용하여 리스트를 탐색하면 시간 초과가 난다! 그렇기에 O(logN)의 시간 복잡도를 가지는 이진 탐색을 활용해야 한다. 직접 이진 탐색을 구현할 수도 있지만 파이썬의 라이브러리와 친숙해지기 위해 bisect 라이브러리를 사용했다. bisect는 특정 숫자 사이에 있는 원소의 개수를 구할 때 유용하게 사용된다. 여기서 주의할 점은 array가 오름차순으로 sorting되어 있어야 한다는 점이다! 해당 문제의 경우 이미 오름차순으로 정렬된 수열이 input값으로 들어온다. bisect_right(array, N) 배열에서 N이 마지막으로 등장하는 인덱스+1을 리턴함 bisect_left(arra..
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(numbers, target) { var answer = 0; function dfs (num, index) { if (index === numbers.length) { if (num === target) answer++; return; } dfs(num + numbers[index], index+1); dfs(num - numbers[index], index+1)..
https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr left a-b); var answer = times[times.length - 1] * n; var left = 0, right = times[times.length - 1] * n; while(left = n) { answer = Math.min(mid, answer); right = mid - 1; } } return answer; }
https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n) { var answer = 0; var visited = Array.from({length: n}, () => new Array(n).fill(false)); // visited 여부를 위한 2차원 배열 // 상하좌우, 대각선에 다른 Queen이 있는지 확인하는 함수 // 다른 분들의 코드에 더 좋은 확인법이 있다 ㅎㅎ 제 코드는 조금 노가다st... func..
https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💜 문제 접근 완전 탐색 문제이다. 한번 사용한 숫자를 중복해서 사용하는 것은 불가능하므로, visited 변수를 두어 방문 여부를 파악하였다. 그리고 dfs를 돌 때마다 소수인지 여부를 확인하고, 소수인 경우는 answer에 추가한다. 그리고 중복된 수는 answer의 개수로 치지 않기 때문에 answer array를 Set으로 변환하여 중복을 제거한 뒤, 다시 배열로 변환하여 정답의 개수를 구..
https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🌸 문제 접근 banned_id를 기준으로 탐색을 한다. (dfs의 count 변수는 banned_id를 탐색할 인덱스입니다.) 유저 아이디가 해당 banId에 해당이 된다면, 다음번 banned_id에 해당하는 유저 아이디가 있는지 체크하기 위해 dfs를 한번 더 돌린다. 이 때, 한 번 제한된 아이디는 한번 더 제한될 수 없기 때문에 해당하는 userId의 visited를 true로 만들어준다..
파이썬으로 알고리즘을 풀 때, input을 입력받는 과정에서 input()을 사용하면 시간 초과가 나올 수 있음! sys.stdin.readline 을 사용하여 입력값을 받자 거리 정보를 받을 때 아래와 같이 리스트의 형식으로 저장하면 특정 노드로부터 시작하는 거리가 있는지 파악하기 수월하다! queue를 사용하여 탐색할 노드를 파악한다 for _ in range(M): a, b = map(int, input().split()) dist[a].append(b) ✅ 문제 풀이 코드 import sys from collections import deque input = sys.stdin.readline N, M, K, X = map(int, input().split()) dist = [[] for _ in ..
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 항상 알고리즘 문제를 익숙한 자바스크립트로 풀다가, 생각보다 많은 기업에서 자바스크립트 사용이 불가능한걸 알게되어 이제부터 파이썬으로 알고리즘 공부를 하려고 한다! ✅ 문제 정리 왼쪽, 오른쪽, 위쪽, 아래쪽으로 기울이기 빨간 구슬이 구멍에 빠지면 성공 실패: 파란 구슬이 구멍이 빠지면 or 파란 구슬과 빨간 구슬이 동시에 빠지면 실패 두 구슬은 ..
스크롤 탑 버튼 기능을 만들면서 마주했던 가장 큰 문제가 NextJS Document is not defined 였다. 위의 문제를 해결하려면 nextJS의 특징을 알아야 한다. nextJS란? nextJS는 React 라이브러리의 프레임워크이다. 가장 큰 이유는 pre-rendering을 통해 SEO(Search Engine Optimization)와 SSG(Static-Site-Generate)을 위한 Server-Side Rendering을 가능하기 때문에 사용한다. 기본 리액트는 Client Side Rendering이므로 웹사이트를 요청했을 때 빈 html을 가져와 script를 로딩하여 첫 로딩시간이 오래걸리고, SEO에 취약하다는 단점이 있다. NextJS를 사용하면 pre-reloading..
- Total
- Today
- Yesterday
- CORS
- level3
- 상태관리
- axios
- 파이썬
- 기초
- JavaScript
- TypeScript
- dfs
- 이진탐색
- html
- level1
- 소프티어
- reactjs
- Hook
- programmers
- 자바스크립트
- React
- springboot
- 프로그래머스
- 이코테
- 노마드코더
- css
- nomadcoder
- React.FC
- 이것이코딩테스트다
- 이것이 취업을 위한 코딩테스트다
- redux
- CS
- 면접을 위한 CS 전공지식 노트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |