본문 바로가기

전체 글

(7)
백준 2751 수 정렬하기 2 (C언어) 문제링크: https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 문제 들어가기전 해당 문제는 너무 많은 case가 존재하기에 효율적인 정렬 방법을 사용해서 문제에 접근해야함 qsort 선택! 일단 compare함수와 qsort 함수 사용법을 암기하는것을 추천한다. 암기 후 이해도 때론 필요하다 생각한다. 나중에 merges sort 활용한 방법도 접근해보자!! 2. 코드로 이해 #include #include // 오름차순비교 함수 ..
백준 2439 별 찍기 - 2 (C언어) 문제 링크: https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 1. 필요한 생각 단순히 별찍기가 아니다 오른쪽으로 정렬된 별찍기임을 생각하고 공백이 내려갈 수록 한칸씩 빠지는 반면, 별은 내려갈 수록 한개씩 증가됨을 생각하자 2. 코드로 이해 #include int main(void) { int N; scanf("%d",&N); for(int i=0 ; i
백준 10989 수 정렬하기 3 (C언어) https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제접근 이 문제에 처음 접근했을때 qsort 함수를 이용해서 풀었지만 메모리 초과 현상발생하였다. 그래서 다른 방법을 찾던도중 발견하것 “ 계수정렬(count sort)” 이다. 계수 정렬이란: 정렬할 데이터 갯수가 많아도 **범위 조건(ex 10이하 자연수)**이 있는 경우에 한해서 굉장히 빠른 알고리즘이다. 퀵소트와 같이 정렬할 필요가 없다! 2. 코드로 이해 #include int main(void) {..