본문 바로가기

C C++/C C++ 백준69

C언어 백준 9012번 괄호 문제 풀이 (의 개수와 )의 개수를 세면서 점수처럼 (일 때 +1, )일 때 -1을 합니다. 이 때 최종값이 0이면 YES입니다. 단, ())와 같이 음수가 되는 경우 for문을 멈추고 NO를 출력합니다. YES NO 판단은 배열 마지막 자리일 때 수행합니다. 소스코드 #include #include #include int main(){ int T; scanf("%d",&T); for(int i = 0; i 2022. 7. 10.
C언어 백준 11004번 K번째 수 문제 풀이 1) 배열을 통해 N개의 숫자를 입력 받는다. 2) qsort 함수를 이용하여 정렬한다. 3) 입력받은 숫자 중 배열에서 K번째 수를 출력한다. 소스코드 #include #include #include int arr[5000010]={}; int N; int K; int compare(const void* a, const void* b) { int A = *(int*)a; int B = *(int*)b; if (AB) return 1; return 0; } int main(void) { scanf("%d %d", &N, &K); for (int i=0; i 2022. 7. 10.
C언어 백준 10989번 수 정렬하기 3 문제 풀이 카운팅 정렬(계수 정렬)을 통해 풀어야 한다. 해당 정렬에 대한 설명은 아래에 있다. 계수 정렬(카운팅 정렬) 개념, 분석, 활용 (tistory.com) 처음 퀵 정렬인 qsort를 통해 문제를 풀어 보니 메모리 초과가 발생하였다. 메모리 제한은 8 MB인데, int arr[10000100] 등으로 선언을 하게 되면, 4Byte * 10000100 = 40000400 Byte = 40000KByte = 40 MB가 된다. 소스코드 #include #include #include #define maxvalue 10001 int count[maxvalue]={}; int main(void) { int N=0; int num=0; scanf("%d", &N); for (int i = 0; i 2022. 7. 2.
C언어 백준 10825번 국영수 문제 풀이 구조체를 통해 이름과 과목 점수를 입력 받고, 점수가 같은 경우 사전 순으로 증가하는 순서로 정렬한다. 이 때 qsort와 strcmp를 이용하였다. 소스코드 #include #include #include typedef struct { int language; int enligsh; int math; char name[20]; } info; int compare(const void* a, const void* b) { info A = *(info*)a; info B = *(info*)b; if (A.language B.language) { return -1; } else { if (A.enligsh < .. 2022. 6. 26.