본문 바로가기

알고리즘185

1863. Sum of All Subset XOR Totals 문제 요약알고리즘 분류:  백트레킹, 수학, 배열난이도: Medium문제내용:수 배열 nums가 주어진다.XOR 총합(XOR total)은 배열의 모든 요소를 비트 단위 XOR 연산한 값이며, 배열이 비어 있는 경우에는 0으로 정의한다.[2, 5, 6]의 XOR 총합은 2 XOR 5 XOR 6 = 1 이다.정수 배열 nums가 주어질 때, nums의 모든 부분집합에 대한 XOR 총합의 합을 구하여 반환하여라사이트 주소: https://leetcode.com/problems/sum-of-all-subset-xor-totals/description/문제풀이 이번 문제는 백트레킹 문제이다. 백트레킹 관련 자세한 내용은 아래의 사이트에 참조하면된다.https://jih3508.tistory.com/84 [알고리.. 2025. 4. 9.
[Leetcode]2574. Left and Right Sum Differences 문제 요약알고리즘 분류:  누적합, 수학난이도: Medium문제내용:수 배열 nums가 주어진다.leftSum[i]는 배열 nums에서 인덱스 i의 왼쪽에 있는 요소들의 합이다. 0번째 인덱스나 요소가 없으면 leftSum[i] = 0이다.rightSum[i]는 배열 nums에서 인덱스 i의 오른쪽에 있는 요소들의 합이다.n-1번째 인덱스나 요소가 없으면 rightSum[i] = 0이다.answer배열은 아래와 같이 정의한다.  answer를 반환 하여라 answer[i] = |leftSum[i] - rightSum[i]|사이트 주소: https://leetcode.com/problems/left-and-right-sum-differences/description/문제풀이 이번 문제는 완전탐색으로 풀면 .. 2025. 3. 24.
[알고리즘 이론] 큐(Queue) 이론 이본에 볼 자료구조는 큐이다. 스택은 FIFO 입선출인 자료구조이다. 즉 먼저들어간게 먼저 들어 온다는 뜻이다. 큐에 자세한 내용은 아래의 사이트에서 확인해라.https://namu.wiki/w/%ED%81%90(%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0) 큐(자료구조)파일:attachment/큐(자료구조)/queue.png 선입선출(先入先出/First In First Out—FIFnamu.wiki  Javascriptclass Queue{ constructor(){ this.items = []; this.start = 0; this.size = 0; } push(val){ this.items.push(val).. 2025. 3. 21.
[Leetcode]452. Minimum Number of Arrows to Burst Balloons 문제 요약알고리즘 분류:  그리디, 정렬난이도: Medium문제내용:.벽에 붙어있는 풍선들은 [xstart, xend] 형태로 주어지며, x축에서 수직으로 화살을 쏴 터뜨릴 수 있습니다.한 번 발사된 화살은 무한히 위로 이동하며 경로 내 모든 풍선을 터뜨립니다. 모든 풍선을 터뜨리는 데 필요한 최소 화살 개수를 구하세요.사이트 주소: https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/description/문제풀이이번 문제는 완전탐색으로 풀면 O(N^2)나오지만 그러면 시간 초과가 나서 O(N^2)안되는 방법으로 끝내야 한다. 그래서 그리디로 간단하게 풀것이다. 그리디 관련 내용은 아래글로 참고 하면된다.https://jih3.. 2025. 3. 15.
[Leetcode]670. Maximum Swaps 문제 요약알고리즘 분류:  구현, 브루드 포스, 그리디난이도: Medium문제내용:숫자 num이 주어지고 두개 숫자 변경 해서 최대 값을 구하여라사이트 주소: https://leetcode.com/problems/maximum-swap/문제풀이이번 문제는 숫자 2개만 바꿔서 그 중 최대 값만 반환 하기 때문에 어렵지 않다고 생각하낟. 그래서 아래 처럼 구현만 된다.숫자를 배열 또는 리스트로 만든다. 그리고 num값을 최대값으로 지정 한다.이중 for문 돌려서 i는 0 ~ 배열 크기 -1, j는 i + 1 ~ 배열 크기 만큼 돌린다.i, j 바꾸고난뒤 숫자로 변환 한뒤 이전 최대 값과 비교하여 그중 큰 값으로 저장 한다. 위 처럼 구현하면 시간 복잡도는 num의 자리수를 N이라고 볼면 O(N^2)만큼 나온.. 2025. 3. 1.
[BAEKJOON]2748 피보나치 수 2 문제 요약알고리즘 분류: dp난이도:  Bronze1문제내용:피보나치 수는 0과 1로 시작한다. 피보나치 식은 아래와 같다.Fn = Fn-1 + Fn-2 N이 주어 졌을때 피보나치 Fn을 구하여라 (N 사이트: https://www.acmicpc.net/problem/2748문제풀이이번 문제는 재귀 호출로 풀기에는 숫자가 커질수록 계산량이 급격히 증가하기 때문에, 동적 계획법(Dynamic Programming, DP*을 사용해야 효율적으로 해결할 수 있다. 동적 계획법에 대해 잘 모르신다면, 아래 링크를 통해 자세한 설명을 확인 해보면 된다.https://jih3508.tistory.com/89 [알고리즘 이론] 동적계획법(Dynamic Programming, DP)이론 이번에 볼 알고리즘은 동적계획법.. 2025. 1. 14.