문제 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 풀이 구현 + 백트래킹으로 해결하는 문제이다. 가장 먼저 봐야할 문제의 조건이 있다. 움직이는 방향은 (상 , 하 , 좌, 우) 총 4개의 방향이며, 이동하는 방향에서 가장 앞에 있는 순으로 합쳐진다. 예를 들어 왼쪽으로 이동시 [2,2,2,0] 인 경우 [4,2,0,0] 으로 바뀌게 된다. 4개의 방향을 각각 구현해주어야 하는데, 큰 틀로 보면, 새로운 배열을 ..
문제 https://www.acmicpc.net/problem/27172 풀이 그냥 단순하게 모든 플레이어 간의 대결을 모두 구하여 풀게 된다면 100000! 로 구할 수 없는 문제이다. 그렇다면, 다르게 풀어야 하는데 에라토스테네스의 체를 이용하여 해당 숫자의 배수를 카드 목록에 가지고있다면 , 결투를 하게 진행하면 된다. 숫자가 담긴 카드 배열을 card라고 하고, 숫자를 가지고 있는지 확인하는 배열을 has라고 했을 때, card[i] 부터 card[N]까지 배수를 찾아, 가지고 있는 카드인지 확인하여 점수를 계산해주면 된다. 코드 import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader i..
앱 설명간단하게 사진과 그리고 이름, 명언, 년도를 입력하면 명언을 제조해주는 애플리케이션이다. 기능제공하는 기능은 다음과 같다.입력된 사진에 배경을 제거하여, 인물의 얼굴만 남는다 (removal background)입력된 정보를 바탕으로 명언을 제조한다.화면 캡쳐기능을 통해 사진을 갤러리에 저장한다. 구현 Removal Background배경 제거의 경우에는 opencv에 grabcut 알고리즘을 사용해서 구현해보고자 했다. 구현하는데 어려움이 크고, 비전관련 배경지식이 없는터라 만들어진 라이브러리를 찾아보고자 했다. 만들어진 라이브러리 중 유로를 제외하고 오픈소스로 제공되는 라이브러리 중 https://github.com/GhayasAhmad/auto-background-remover GitHub ..
문제 https://www.acmicpc.net/problem/2166 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 풀이 CCW 알고리즘 사용해서 해결한 문제이다. 세 점 A(x1, y1) B(x2,y2) C(x3,y3) 이 있을 때 삼각형의 넓이는 다음과 같다. 0.5(abs((x1y2 + x2y3 + x3y1) - (y1x2 + y2x3 + y3x1)) 이는 CCW 알고리즘의 결과에 0.5를 곱해준 것과 같다. 좌표 하나를 기준으로 삼각형을 만들어 각 삼각형의 합을 구해주면 된다. 코드 import java.io.Buffered..
Suggestion: add 'tools:replace="android:theme"' to element at AndroidManifest.xml 에러 발생시 해결방법 문제 원인 : 다른 라이브러리나 모듈에서 이미 정의된 테마와 충돌이 발생할 때 발생 androidManifest - applcation에 추가 tools:replace="android:theme"
[문제] https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net [풀이] A에서 가능한 부분합을 모두 구하고 B에서 가능한 부분합을 모두 구한다. A의 부분합이 저장된 배열을 sum_a라고 하고, B의 부분합이 저장된 배열을 sum_b라고 했을 때, sum_a[i] = T - sum_b[j] 를 만족하는 i와 j값을 찾아야 한다. 단순하게 찾으면 메모리 초과 또는 시간 초..