일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 커스텀알락
- mac
- yarn-berry
- youtube iframe
- 다리놓기
- css
- 타입스크립트
- leetcode189
- leetcode977
- 자바스크립트
- 구조분해할당
- 백준
- Next.js
- nvmrc
- Python
- 기초
- nvm
- 프로토타입
- React
- JS
- firebaseui
- 커스텀알림
- Rest
- 파이어베이스로그인
- react-firebaseui
- 리액트
- Spread
- 파이썬
- iP
- react-native
- Today
- Total
목록개발/알고리즘 (13)
JadeCode
Binary Search Binary Search(이진 탐색) 이진 탐색은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다. 최소값는 리스트의 첫 번째 값이고, 최대값은 리스트의 마지막으로 설정한다. 중간의 값을 중앙값으로 설정하고, 중앙값 target이면 중앙값이 새로운 최대값이 된다. 정렬된 리스트에만 사용할 수 있다는 단점이 있지만, 검색이 반복될 때마다 목표값을 찾을 확률은 두배가 되므로 속도의 측면에서는 장점이다. 704. Binary Search 기본적인 binary search이다. /** * @param {number[]} nums * @param {number} target * @retu..

문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 ..
알고리즘을 풀다보면 2진수로 변환해 풀어야하는 문제들이 종종 있다. 자바스크립트 메소드를 사용하면 쉽게 바꿀 수 있다. 10진수 -> 2진수 ->10진수 let decimal = 25; let binary = decimal.toString(2); // '11001' let binaryToDecimal = parseInt(binary,2); //25 + 8진수, 16진수 let octal = decimal.toString(8) //'31' let hexadecimal = decimal.toString(16) //'19' let octalToDecimal = parseInt(octal,8) //25 let hexadecimalToDecimal = parseInt(hexadecimal,16) //25 중요한 ..
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net python의 dictionary를 사용하여 있고 없음을 판단하면 쉽게 풀 수 있는 문제이다. import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) dic = {i: 0 for i in arr} # 둘째줄에 입력받은 숫자들을 dictionary의 key값으..

https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 분할 정복 재귀 분할정복이란 간단히 말해서 큰것에서 작은것을 탐색하고 최소단위에 도달하면 순차적으로 모든 값을 리턴하는 것이다. 이 색종이 문제는 분할 정복의 기본이라 할 수 있다. 입력받은 n을 2로 계속 나누어 네 개의 부분으로 나눌 수 있다. 그 n을 2로 나눈 것을 4번 재귀호출 하고 반복문을 돌려 나눠진 범위 내의 숫자가 모두 같다면 judge = True로 다..
https://www.acmicpc.net/problem/1059 1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net 정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다. 일단 입력받은 집합 S를 정렬한다. 반복문을 돌려 좋은 구간을 찾는다. # 중요한 점 S[0]보다 n이 작을 수 있다는 점을 간과해서는 안된다. #20220124 #좋은 구간 import sys input = sys.stdin.readline #집합 S의 크기 t = int(input()) #집합 S S = list(map(int, input().split(' '))) n = int(input()) #정렬 S.sor..
https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net O가 연속으로 있으면 그 문제 점수는 연속된 O개수이다. import sys input = sys.stdin.readline t = int(input()) #테스트케이스 개수만큼 반복 for _ in range(t): arr = list(input().rstrip()) result = 0 total = 0 for i in range(0, len(arr)): if(arr[i]==..
https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net n을 입력받은 뒤, 출력 형태에 맞추어 출력하기 import sys input = sys.stdin.readline t = int(input()) for i in range(1, 10): print(f'{t} * {i} = {t*i}') f-string 문자열 포매팅 방법 연습