본문 바로가기

study48

[백준문제풀이] 1399 단어수학 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 접근법 : **1) 어떻게 풀 것인가?** 처음생각은 (1) 단어의 길이대로 (내림차순) 정렬한다 (2) 단어에 포함된 알파벳 종류를 저장한다. (3) 자릿수에 따라 가장 큰 자릿수부터 9를 부여한다. ex) 2 GCF ACDEB 일시 A = 9 C = 8 G = 7 D = 6 E = 5 F = 4 B = 3 (4) 주어진 자릿수와 수에 따라 덧셈을 한다. 이렇게 생각했는데 이 방식대로 가면.. 2023. 11. 27.
[백준문제풀이] 12904 A와B java https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 처음 이 문제를 보고 가장 먼저 떠오른 답은 완전이진트리를 사용한 풀이였다. 문자열S에 대해 두가지의 연산이 가능하다면 가능한 수를 완전이진트리로 표현할 수 있겠다고 생각하고 이를 그림으로 표현해보며 아래와 같은 코드를 작성했다. 예시) B ABBA import java.io.*; public class Main { public static void main(.. 2023. 11. 18.
[TIL] SegmentTree와 IndexedTree 세그먼트 트리와 인덱스드 트리는 뭐가 다른걸까 https://book.acmicpc.net/ds/segment-tree 세그먼트 트리 누적 합을 사용하면, 1번 연산의 시간 복잡도를 $O(1)$로 줄일 수 있습니다. 하지만, 2번 연산으로 수가 변경될 때마다 누적 합을 다시 구해야 하기 때문에, 2번 연산의 시간 복잡도는 $O(N)$입니다. book.acmicpc.net https://www.acmicpc.net/blog/view/21 펜윅 트리 (바이너리 인덱스 트리) 블로그: 세그먼트 트리 (Segment Tree) 에서 풀어본 문제를 Fenwick Tree를 이용해서 풀어보겠습니다. Fenwick Tree는 Binary Indexed Tree라고도 하며, 줄여서 BIT라고 합니다. Fenwick T.. 2023. 11. 16.
[백준문제풀이] 12015 가장 긴 증가하는 부분 수열2 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 이 문제를 풀기 위해선 https://alotofsim.tistory.com/75 [TIL] LIS(최장증가수열) 에 대한 공부 dp문제를 풀다가 lis를 사용해야하는 문제가 나왔다. 예전에 알고특을 들을 때 그냥 가볍게 읽고 넘어간 내용이라 다시 떠오르려 하니 기억이 안 나는 상황 발생...(허걱) 완전히 이해하지 않고 그 alotofsim.tistory.com 이 지식이 필요하다. N이 10^.. 2023. 11. 14.