[알고리즘] 1233. 사칙연산 유효성 검사
0. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! 1. 문제 이해 2. 제출 방법 1 방법 2
0. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! 1. 문제 이해 2. 제출 방법 1 방법 2
1. 비트연산 연산자 설명 예시 & 비트 AND 연산 5 & 3 = 1 ^ 비트 XOR(배타적 OR) 연산 5 ^ 3 = 6 ~ 비트 NOT 연산 (1의 보수) ~5 = -6 << 왼쪽 시프트 연산 (비트를 왼쪽으로 이동) 5 << 2 = 20 >> 오른쪽 시프트 연산 (비트를 오른쪽으로 이동) 5 >> … 더 읽기
1. 리스트 순서를 가진 데이터의 집합을 가리키는 추상자료형. 값의 중복을 허용한다. 2. 연결 리스트 가. 단순 연결 리스트 다음 노드에 대한 참조값만 가지고 있음. 1) 단순 연결 리스트 응용 – Stack 스택은 한쪽 끝에서만 삽입/삭제가 발생하므로 단순 연결 리스트로도 충분히 구현할 수 있다. 단순 연결 리스트로 스택을 구현할 때 top으로 1번 자리가 2번보다 더 … 더 읽기
1. Heap 가. 데이터 삽입 나. 데이터 삭제 최댓값 혹은 최솟값이 저장된 루트 노드만 제거할 수 있다. 우선순위 큐(priority queue)를 구현하거나, 힙 정렬(heap sort)을 만들 때 사용된다. 출처 : https://namu.wiki/w/힙 트리 다. 구현 최소힙 예시 (코드 출처 : https://go-coding.tistory.com/25) 라. 관련 문제 1927번: 최소 힙 11279번: 최대 힙 11286번: 절댓값 힙 5. Priority Queue
0. 문제 12891번: DNA 비밀번호 1. 문제 이해 수학 잘 못함. 2. 제출 조건을 만족하는 부분 순열을 구하는 문제다. 매번 문자열을 새로 카운팅하면 시간을 초과한다. 슬라이딩 원도우를 사용해서 나가는 것과 들어오는 것만 체크한다.
0. 문제 2023번: 신기한 소수 1. 시간초과 2. 시간 줄이기 위를 바탕으로 코드를 최적화한다. 먼저 수(i)를 만들고 특정 자리까지만 숫자(num)를 가져오기 위해서 Math.pow()를 사용했다. 무조건 숫자(i)를 만들고 각 자리의 수가 2, 3번 조건을 만족하는지 확인하다 보니 불필요한 연산이 발생했다. 1번과 2번 조건을 만족하는 숫자만 생성하고 3번 조건을 만족하는지 확인하면 불필요한 연산을 줄일 수 있다. 재귀함수로 … 더 읽기
1. Stack Stack underflow와 overflow를 조심하자. 2. Queue Java의 java.util.Queue는 interface다. 구현체로는 대표적으로 ArrayDeque 또는 LinkedList를 사용한다. 대부분의 상황에선 LinkedList보다는 ArrayDeque를 사용하자. ArrayDeque 양쪽 끝에서 삽입, 삭제하기에 효율적이다. 3. Priority Queue 기본은 오름차순으로 정렬한다. 정렬의 순서를 자신이 원하는 방법으로 바꾸고 싶다. → Comparator를 추가한다. 또는 Comparable을 구현해도 된다. Data Structure Insertion Time Complexity Deletion Time … 더 읽기
종류 설명 기호 시간 복잡도 순열 N개의 원소 중 R개의 원소로 순서를 가진 부분집합을 만드는 경우의 수 nPr O(N!) 조합 N개의 원소 중 R개의 원소로 부분집합을 만드는 경우의 수 nCr O(n! /( r! x (n-r)!)) 부분집합 N개의 원소로 부분집합을 만드는 모든 경우의 수 nHr O(2^N) 집합에 포함된 원소들을 선택하는 것. 원소들의 그룹에서 최적의 부분 … 더 읽기