ComputerScience/Algorithm
-
[UJAD] 문제 해결 접근법ComputerScience/Algorithm 2024. 12. 11. 17:00
🚨 이 글은 'Colt Steele'의 'JavaScript 알고리즘 & 자료구조 마스터클래스' 강의를 듣고 정리한 글입니다.https://www.udemy.com/course/best-javascript-data-structures/?couponCode=BFCPSALE24문제 해결 접근법What is an algorithm?A process or set of steps to accomplish a certain taskWhy do i need to know this?Almost everything that you do in programming involves some kind of algorithm.It is the foundation for being a succesful problem solvi..
-
[UJAD] 배열과 오브젝트의 성능 평가ComputerScience/Algorithm 2024. 12. 5. 14:18
Objects Big O[!IMPORTANT]자바스크립트에서 객체(Object)의 삽입, 제거, 조회, 검색 등의 주요 연산과 관련 메서드들의 시간복잡도는 대부분 O(1)이다. 이는 객체가 해시 테이블을 기반으로 구현되었기 때문이다.When to use objectsWhen you don't need orderWhen you need fast access or insertion and removalBig O of objectsInsertion: keys and values - O(1)자바스크립트 객체는 해시 테이블을 기반으로 동작하므로, 키를 해시 함수에 전달해 해당 키의 위치를 계산하고 값을 저장한다. 해시 충돌이 적은 경우 삽입은 상수 시간에 이루어진다.Remove: keys and values - ..
-
[UJAD] Big O NotationComputerScience/Algorithm 2024. 11. 27. 22:30
🚨 이 글은 'Colt Steele'의 'JavaScript 알고리즘 & 자료구조 마스터클래스' 강의를 듣고 정리한 글입니다.https://www.udemy.com/course/best-javascript-data-structures/?couponCode=BFCPSALE24What is Big O?We have multiple implementations of the same function.How can we determine which one is best?Who Cares?for technical interview, code competitionto discuss trade-offs between different approachesmake us to know what slows down the ..
-
[BOJ] 사분면 고르기 - 14681ComputerScience/Algorithm 2024. 9. 12. 11:16
[Bronze V] 사분면 고르기 - 14681문제 링크성능 요약메모리: 31120 KB, 시간: 32 ms분류구현, 기하학제출 일자2024년 9월 12일 10:23:09문제 설명흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.입력첫 줄에는 정수 x가 주어진다. (−1..
-
[BOJ] 윤년 - 2753ComputerScience/Algorithm 2024. 9. 12. 00:13
[Bronze V] 윤년 - 2753문제 링크성능 요약메모리: 31120 KB, 시간: 40 ms분류구현, 사칙연산, 수학제출 일자2024년 9월 11일 17:19:16문제 설명연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.입력첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.출력첫째 줄에 윤년이면 1, 아니면 0을 출력한다.후기나의 제출은..
-
[BOJ] 두 수 비교하기 - 1330ComputerScience/Algorithm 2024. 9. 11. 14:49
문제문제 설명두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.입력첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.출력첫째 줄에 다음 세 가지 중 하나를 출력한다.A가 B보다 큰 경우에는 '>'를 출력한다.A가 B보다 작은 경우에는 ''를 출력한다.A와 B가 같은 경우에는 '=='를 출력한다.성능 요약메모리: 31120 KB, 시간: 32 ms분류구현접근 방법입력을 받고, 리스트 인덱싱을 통해 대소를 비교하는 방식을 선택하였다.import sys input = sys.stdin.readline arr = list(map(int, input().split())) if arr\[0\] > arr\[1\]: print('>') elif arr\[..
-
[LeetCode] 367. Valid Perfect ScoreComputerScience/Algorithm 2024. 4. 9. 15:23
문제성능 요약메모리: 16.52MB , 시간: 41ms 접근 방법일단 라이브러리를 사용할 수 없다는 문제 조건으로 시간 복잡도를 어떻게 줄여 나갈 것인가가 관건이라고 생각했다.제곱근은 주어진 num의 절반보다 작을 것이다.예를 들어 16의 제곱근인 4는 16의 절반보다 작다. 또한 제곱근끼리의 곱셈이 num보다 커진다면 그것은 제곱수가 아니라고 판단했다.예를 들어 15의 경우 1~8까지 탐색을 하는데, i가 4일 경우 16이 되어 15를 넘어가게 되므로 이는 15가 제곱근으로 정수를 갖지 않는다는 것과 같다고 생각했다.정답class Solution: def isPerfectSquare(self, num: int) -> bool: if num == 1: retu..
-
[LeetCode] 166. Fraction to Recurring DecimalComputerScience/Algorithm 2024. 4. 9. 15:13
문제 성능 요약 메모리: 16.9MB, 시간: 26ms 분류 ? 접근 방법 리트코드로 문제를 푸는 것이 처음이어서, class를 활용한 디버깅 방법 등을 연구하느라 시간이 좀 걸렸다. 문제로에서는 분수가 반복되는 부분을 찾는 것이 관건이겠다 생각했다. class Solution: def fractionToDecimal(self, numerator: int, denominator: int) -> str: ans = "" ans2 = "" n = numerator d = denominator if n % d == 0: return str(n//d) else: if len(str(n/d)) > 10: ans += str(n/d).split(".")[1] for i in ans: if i in ans2: bre..