본문 바로가기

알고리즘/ACM 문제 풀이

[Algospot 알고스팟] PICNIC 소풍 C, C++언어 문제 풀이 알고리즘 문제해결전략 문제 소풍풀이방법재귀문을 통해 입력된 값을 탐색을 하면 됩니다. 예제 1번1 4 6 0 1 1 2 2 3 3 0 0 2 1 3 6 10 위의 예제의 경우 출력은 3이 나오게 됩니다. 출력이 3이 나오기 위한 경우 : 01 23, 12 30, 13 02 2번째 입력 값을 보고 사람 수 만큼 Table의 크기를 잡고 짝이 되는 것을 찾을 때 마다 table 값을 -1로 변경 하여table의 값이 모두 -1이 된다면 다 찾은 것이라고 생각을 했었는데, 입력 예제 3번째 TC값을 보고 재귀문을 통해서 탐색을 하는 방법을 생각하게 되었습니다.예제 2번1 6 10 0 1 0 2 1 2 1 3 1 4 2 3 2 4 3 4 3 5 4 501 을 먼저 찾은 경우 뒤의 짝은 23 45 가 될 수도 있.. 더보기
[c, c++] 백준 1012번 - 유기농 배추 백준 1012번 유기농 배추 문제 문제 링크 : https://www.acmicpc.net/problem/1012문제로 바로 이동 (클릭해주세요) 문제 해석 및 설명인접한 배추에 배추흰지렁이가 한 마리라도 살고 있으면 해충으로 보호 받을수 있다. ( 이 내용이 중요 ) 이 경우 위에 주어진 TC에서 (1은 배추의 위치를 뜻함) 지렁이는 5마리가 살고 있습니다.왜 5마리가 살고 있는지 그림으로 설명 드리겠습니다.인접해있기 때문에 빨간색으로 표기한 위치에 지렁이가 1마리씩 있을 수 있습니다. 그럼 배열을 탐색하면서 1을 만난 경우 상 하 좌 우 탐색을 하면서 1의 값을 0으로 만들어 버리면 쉽게 문제를 해결 할 수 있습니다. 탐색 방법은 재귀문을 통해 탐색하는 것이 코드 구현이 간단해집니다. 지렁이 coun.. 더보기
[백준] 11050번 - 이항 계수 1 ( C 문제 풀이 ) 백준 11050번 문제 - 이항 계수 1 이항 계수위키 백과 : 주어진 크기의 조합의 가짓수 입니다. 수학 백과 : 이항 정리에서 전개된 항의 계수 공식 문제 풀이공식만 잘 보면 너무나 쉽습니다. 물론 저렇게 공식을 풀어나가는 방법은 어렵습니다. (저도 오랜만에 봤기 때문에 이항계수 부터 찾아봤습니다.) 문제는 푸는 방법의 핵심은 factorial입니다. factorial은 재귀적으로도 구현이 가능하고 반복문으로도 구현이 가능합니다. 저는 반복문 코드로 구현하였습니다. ( 재귀문으로는 구글에서 찾아보시면 쉽게 코드를 구할 수 있습니다.)Factorial 반복문 코드1234567int factorial(int num) { int result= 1; for (int i = 1; i 더보기
백준 #2696 번 중앙값 구하기. 문제https://www.acmicpc.net/problem/2696 풀이 방법https://o-tantk.github.io/posts/finding-median/http://sanghoon9939.tistory.com/32 추가 설명Min Heap, Max Heap 을 이용하고, 기준 값으로 입력을 받아 출력을 한다.Min Heap, Max Heap를 이용해서 풀 경우 O(3 log N) 의 빠른 속도로 중앙값을 구해 문제를 풀 수 있다. 일단 해당 문제를 풀기 전에 우선순위 큐를 먼저 공부를 해야 한다. 소스 코드와 상세한 설명은 풀이 방법 링크를 우선 참조하고 추후 상세하게 코드 정리를 해볼 예정. 더보기