본문 바로가기

전체 글376

[백준] 10026번 : 적록색약 – JAVA [자바] https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제 풀이 방법 이 문제는 전형적인 그래프 문제이다. 조금 더 많은 그래프의 정보를 원한다면 밑에 있는 링크를 참고하면 되겠다. https://propercoding.tistory.com/entry/자료구조-그래프 Graph [자료구조] 그래프(Graph) 목차 그래프란? 그래프는 정점과 간선으로 이루어진 자료구조임. → 트리는 그래프의 일종인데 다만 트리와는 달리 그래프는 정점마다 간선이.. 2022. 1. 31.
[백준] 15482번 : 한글 LCS – JAVA [자바] https://www.acmicpc.net/problem/15482 15482번: 한글 LCS 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 최대 1000글자이고, 유니코드 U+AC00(가)부터 U+D7A3(힣)까지로만 이루어져 있으며, UTF-8로 인코딩 되어 있다. www.acmicpc.net 문제 풀이 방법 이 문제는 전형적인 DP의 LCS 문제이다. 조금 더 디테일한 풀이는 밑에 링크를 참고하면 되겠다. https://propercoding.tistory.com/entry/알고리즘-LCS-최장-공통-부분-수열 [알고리즘] LCS (최장 공통 부분 수열) 목차 LCS란? LCS는 Longest Common Subsequence의 약자이다. 말 그대로 가장 긴 공통된 부분 수열이다. LCS는 .. 2022. 1. 30.
[알고리즘] LCS (최장 공통 부분 수열) 목차 LCS란? LCS는 Longest Common Subsequence의 약자이다. 말 그대로 가장 긴 공통된 부분 수열이다. LCS는 보통 주어진 두 수열에서 각각의 부분 수열들 중, 서로 같은 부분 수열 중에서 가장 긴 부분 수열을 뜻한다. LCS는 DP(다이나믹 프로그래밍)의 대표 유형 중 하나고 백준에서는 최소 난이도가 골드5 정도 된다. 따라서 LCS를 알면 DP 골드 문제들을 조금씩 풀 수 있게 된다. 예시를 하나 보겠다. s1 = ACAYKP, 그리고 s2 = CAPACK라고 하겠다. 문제 예시로 보자면 ACAYKP의 부분 수열을 표현하면 다음과 같다. ACAYKP : {A}, {C}, {A}, {Y}, {K}, {P}, {A, C}, ⋯ , {A, C, A, Y, K, P} CAPCAK의.. 2022. 1. 30.
[백준] 16948번 : 데스 나이트 – JAVA [자바] https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net 문제 풀이 방법 이 문제는 전형적인 그래프 문제이다. 조금 더 구체적인 그래프 이론을 알고 싶으면 밑에 링크를 참고하면 되겠다. https://propercoding.tistory.com/entry/자료구조-그래프Graph [자료구조] 그래프(Graph) 목차 그래프란? 그래프는 정점과 간선으로 이루어진 자료구조임. →.. 2022. 1. 29.
[백준] 17213번 : 과일 서리 – JAVA [자바] https://www.acmicpc.net/problem/17213 17213번: 과일 서리 민건이네 과일 농장은 N가지 종류의 과일을 재배하는 중이다. 평소 민건이에게 앙심을 품고 있던 지환이는 민건이를 골탕 먹이기 위하여 민건이네 과일 농장에서 과일들을 훔치기로 다짐했다. www.acmicpc.net 문제 풀이 방법 이 문제는 다이나믹 프로그래밍 (DP) 문제이니 DP 이론은 밑에 링크를 참고하면 되겠다. https://propercoding.tistory.com/entry/알고리즘-다이나믹-프로그래밍-Dynamic-Programming [알고리즘] 다이나믹 프로그래밍 (Dynamic Programming) 목차 다이나믹 프로그래밍이란? 다이나믹 프로그래밍 (Dynamic Programming) 또는.. 2022. 1. 27.
[백준] 15990번 : 1, 2, 3 더하기 5 – JAVA [자바] https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 방법 이 문제는 다이나믹 프로그래밍 (DP) 문제이니 DP 이론은 밑에 링크를 참고하면 되겠다. https://propercoding.tistory.com/entry/알고리즘-다이나믹-프로그래밍-Dynamic-Programming [알고리즘] 다이나믹 프로그래밍 (Dynamic Programming) 목차 다이나믹 프로그래밍이란? 다이나믹 프로그래밍 (Dynamic Programming) 또는 동적 계획법은 큰 문제를 작은 문제로 쪼개서.. 2022. 1. 26.
[알고리즘] 다이나믹 프로그래밍 (Dynamic Programming) 목차 다이나믹 프로그래밍이란? 다이나믹 프로그래밍 (Dynamic Programming) 또는 동적 계획법은 큰 문제를 작은 문제로 쪼개서 푸는 기법이다. 다이나믹 프로그래밍의 특징은 모든 작은 문제들은 단 한 번만 풀어야 한다는 것이다. 한 번 푼 것을 여러 번 다시 푸는 일이 없어 비효율적인 알고리즘을 개선시키는 방법 중에 하나다. 따라서 이미 정답을 구한 작은 문제의 결과는 따로 배열에 저장하고 나주에 필요할 때 다시 사용한다. 이것을 메모이제이션 (Memoization)이라고 한다. 그리고 다시 큰 문제를 풀어나갈 때 똑같은 작은 문제가 나타나면 앞에서 메모한 작은 문제의 결괏값을O(1)의 시간복잡도로 이용해서 문제를 효율적으로 풀 수가 있다. 다이나믹 프로그래밍 접근 방법 다이나믹 프로그래밍의 .. 2022. 1. 23.
[자료구조] 그래프 (Graph) 목차 그래프란? 그래프는 정점과 간선으로 이루어진 자료구조임. → 트리는 그래프의 일종인데 다만 트리와는 달리 그래프는 정점마다 간선이 없을 수도 있고 있을 수도 있으며, 루트 노드, 부모와 자식이라는 개념이 존재하지 않음. G = (V, E) V(G)는 그래프 G의 정점들의 집합을, E(G)는 그래프 G의 간선들의 집합을 의미함. 그래프에서 사용하는 용어 - 정점(vertice) : 노드(node)라고도 하며 정점에는 데이터가 저장됨 (0, 1, 2, 3) - 간선(edge): 노드 간의 관계를 나타냄 - 인접 정점(adjacent vertex) : 간선에 의해 연결된 정점 EX) 정점 0과 정점 1은 인접 정점) - 단순 경로(simple-path): 경로 중 반복되는 정점이 없는 것, 같은 간선을 .. 2022. 1. 22.
반응형