Median filter와 Mean filter의 차이가 매우 확연하게 드러난다!!! Median filter의 경우 대충보면 원본이랑 거의 차이도 없어보인다. ㄷㄷ 그 이유는 Median filter는 salt and pepper noise 제거에 탁월하기 때문이다. 근데 이건 내가 만든 노이즈 파일에 소금후추 노이즈만 있어서 차이가 극단적으로 보이는 것이라 아무튼! Mean filter는 필터 내의 Y값을 모두 더해서 평균을 내기 때문에 0이나 255같은 값이 섞여있으면 전반적으로 결과가 이상하게 나오게 된다. 그리고 mean filter를 쓰면 전반적으로 이미지가 뿌얘진다? 뭉개진다고 해야하나? 하여튼 필터 중 제일 간단한 필터지만 그만큼 성능은 좀 떨어진다고 봐야할 듯 싶다/ 다만 median f..
>문제 너무 길다 생략! www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net > 핵심 탐색 알고리즘 (이분탐색) >풀이과정 맨 처음에 그냥 문자열 배열으로 주욱 입력받은 다음에 이중반복문으로 뺑뺑이 돌리려고 했는데 시간초과가 나서 방법을 수정해야 했다.. O(n^2)보다 빠른 탐색 방법이라면 이분탐색(O(logn))이 쉽고 대표적이기에 이분탐색을 사용했다. 이분탐색을 사용하려면 우선 배열이 정렬되어있어야 하므로 list외에 추가로 s..
>문제 www.acmicpc.net/problem/2670 2670번: 연속부분최대곱 첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나 www.acmicpc.net > 핵심 DP 혹은 이중반복문 >풀이과정 이중 반복문을 돌려서도 시간초과 없이 풀어진다 다만 DP로 푸는것이 시간복잡도 면에서 훨씬 효율적인 알고리즘이라 할 수 있겠다 >깨달은점 DP는 아직 어렵다 근데 풀다보니까 뭔가 느낌은 오는 것 같다. 아직 더 많이 풀어봐야할듯 >코드 #define _CRT_SECURE_NO_WARNINGS #include double dp[10002]; int ma..
>문제 www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net > 핵심 DP 아니면 삼중반복문 >풀이과정 어려웠다. 어떻게 풀어야하나 도통 생각이 안나서 그냥 반복문을 돌려서 어거지로 풀었는데 나는 DP로 풀고싶었다. 근데 도저히 생각이 안나서 다른사람 아이디어를 보고나서야 DP 방식이 이해가 됐다. dp 배열에는 제곱수를 표현하는 최소 개수가 들어간다. dp[0] = 0, dp[1] = 1으로 초기화. 그리고 반복문을 돌면서 d..
>문제 www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net > 핵심 규칙찾기 >풀이과정 처음에 보고 와 막막하다.. 생각했는데 경우의 수를 적어보다 보니까 매우 쉬운 규칙성을 발견해서 아주 쉽게 풀 수 있었다;; 그 규칙은 A, B 순서대로 돌을 가져간다고 했을때 돌의 개수가 짝수이면 반드시 A가 이기고 돌의 개수가 홀수이면 반드시 B가 이긴다. 돌을 한개 가져가나 세개 가져가나 A는 반드시 짝수 위치에 오게 되므로 돌의 개수가 짝수이면 반드시 A가 이기는 게임인것이다 베스킨라빈스 31 게임을 할때도 1개와 3개 중에서 뽑아갈 수 있다고 조건을 건다면 나중에 시작하는 사람이 반드시 ..
리스트 - 인덱스 순서대로 저장, 인덱스로 값을 인덱싱 사전 - 순서 상관 X, 키 - 값 세트로 묶는다. 값을 인덱싱 할때 키값을 넣어주면 된다. (사전의 키는 정수일 필요가 없음 / 키값은 중복되면 안된다. ) today_menu = { '아침' : ['미역국', '밥'], '점심' : '라면', '저녁' : ['치킨', '피자'] } # 키-값 쌍으로 출력 print(today_menu) >> {'아침': ['미역국', '밥'], '점심': '라면', '저녁': ['치킨', '피자']} # 사전에 키-값 추가 today_menu['야식'] = '초밥' print(today_menu) >> {'아침': ['미역국', '밥'], '점심': '라면', '저녁': ['치킨', '피자'], '야식': '초밥..
>문제 www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 핵심 조합 (nCr) >풀이과정 DP 문제라길래 풀어봤는데 막상 풀고나니까 DP보다는 조합 문제인 것 같다. 처음에는 DP처럼 풀려고 팩토리얼을 dp 배열에 저장해놓고 nCr 계산할 때 꺼내쓰려고 했었는데, 문제의 조건에 따르면 최대 30! 까지 구해야 할 수 있는데 이 30!은 unsigned long long 자료형을 사용해도 다 담을 수가 없는 범위이기 때문에 그렇게 할 수가 없다..! 그래서 ..