씨발 좆같은 일이 생겼다.
앞뒤 다짜르고 본론만 이야기 하자면
파일을 라인 바이 라인으로 읽어서 배열화 시켜놓고 아이템명 찾아서 특정 값을 매칭하는 로직이 있는데
이게 기존에 구현된 방식이 라인마다 쿼리 날려서 값을 가져 오는 방식이다.
근데 이거 기존에는 문제가 없었는데 업무 특성상 그 좆같은 덕지덕지 인터락 추가되면서
시간문제가 생겼다.
결과처리 값을 설비로 리턴하면 설비가 대기타다가 추가동작을 하도록 되어 있는데
대기 시간 오버하는 케이스가 나오기 시작했다.
그래서 이것저것 생각해봤는데 결과파일이 max 3500라인이라 union all 같은걸로 묶어서 때리는건 도저히 안되고
in처리도 max가 천개기도 하고 그따구로 쿼리짜면 DBA한테 쪼인트 까일거 같아서
기준정보를 한번만 쿼리해서 가져다 놓고 라인 읽을 때 마다 매칭하려고 한다.
그래 시팔... 해시맵이 필요하다. 근데 이거 순수 C다. 리눅스에서 돌리는 순수 C라서
HashMap 그딴거 없다. 내가 만들어서 써야한다.
데이터도 문자열기반이라 해시펑션도 만들어야 한다.
나에게 필요한건 containsKey 메소드 하나인데
이거 때문에 프로세스 자체를 자바로 컨버팅하느냐 vs C로 해시 구현할거냐 선택의 기로에 섰다.
니들이라면 어케할거 같냐?
자바로 컨버팅하려면 양산평가 해야하는데 솔직히 할 자신 없고
C로 해시 구현하자니 조오오오오오오오온나 귀찮은데다가 검증할 자신이 없다.
10개의 댓글
무분별한 사용은 차단될 수 있습니다.
숨은음은
해시 펑션 만드는 게 뭐 대단히 복잡한 일도 아니고... 호들갑 잠시 멈추고 생각을 해바
강군친구
맞네 호들갑이다
RX7900XTX
다 이해하지는 못 했는데
탐색 문제면 탐색 알고리즘 쪽 알아보면 될 거같긴함
그 map 컨테이너 비슷하게 만들면 될 듯?
키값이 작은 값은 왼쪽, 큰 값은 오른쪽
쭈우우우욱 내려가다가 자식이 없는 노드까지 가면 containsKey가 false 반환하게 하면 될 듯?
노드라는 구조체 만들어서
struct Node
{
값 value
Node* leftChild = null;
Node* rightChild = null;
}
이렇게 만든후 노드 연결해주셈
RX7900XTX
흠.. 일단 바드나 chatGPT에게 C로 해쉬테이블 만드는 법 물어보셈
전체적인 코드는 못 짜는데 알고리즘은 잘 짬
천연기념물323호
https://opensource.apple.com/source/bash/bash-92/bash-3.2/hashlib.c.auto.html
플로이드와셜
이미 검증된 hashcode 구현체들도 많고 그거 충돌해봤자 훨 빠르지않나?
동탄올리버
C로 합니다 ㅋㅋㅋ
JaGoon
호들갑 떨지마 찾으면 다 있음
프로그래머스
씨로하고 검색의 힘으로 해야지
너가전부옳아
걍 이거 고대로 gpt한테 물어보면 초안 잘 짜줌