1. 개요

처음으로 실습환경 적응을 위해 코드그라운드 문제에 접근했다.

파일 입출력 환경이 너무 달라서 어떻게 해야하는지 몰라 한참을 헤맸다.


그런데 그냥 입력 문구를 넣으면 끝나는 것이었다니, 아마 파일입출력에 시간을 쏟기보다

순수하게 알고리즘 본연에 집중하기 위한 배려인듯 하다.


1번 문제는 역시나 easy 마크를 달고있는 만큼 쉬웠다.


결국은 정렬 문제로 정렬한 뒤(O(nlogn)에 정렬된 값을 O(n)에 비교하며 풀어낸다.


최종 수행속도는 O(nlogn)으로 퀵 정렬에 모든 시간을 다 소비한다.


qsort 사용법


qsort(배열이름, 배열크기, 배열의타입 메모리, compare함수);


int compare(const void* a, const void* b){

return strcmp((char*)a,(char*)b);

}


이 qsort를 사용하기 위해서 필요한 헤더는 #include<stdlib.h>, #include<string.h> 이다.


처음엔 SelectionSort()로 풀었고, 시간을 1초를 초과했다.

하지만 qsort로 바꾸고 0.2초의 시간 내에 문제가 풀렸다.


다음은 문제에 대한 링크이다. 

https://www.codeground.org/practice/practiceProbView.do?probId=1#


*추가로 몰랐던 것.

처음엔 XOR 연산자가 있는지 몰라서 십진수를 이진수로 바꿔 각 자리수를 배열안에 넣어

계속 채워넣어서 나중에 한꺼번에 XOR 연산을 한 후, 이진수를 다시 십진수로 바꾸려했다.

하지만 이렇게 따져보니 말도안되는 시간이 걸릴 것 같아서 찾아본 결과 충격적이게도

^연산자가 XOR 연산자인것을 처음 알았다. 그리고 이 연산자가 십진수도 먹히는게 충격이다.



2. 문제


3. 전체코드 및 출력

3-1) 전체코드


3-2) 출력


+ Recent posts