c(3)
-
소프티어 - CPTI와 비트마스크
평소에 코딩테스트랑은 담을 쌓고 살던 와중, 어쩌다보니 코딩테스트를 앞두고 소프티어에서 2~3레벨 문제를 풀어보고 있었다. Javascript로 풀어볼 수 있는 문제를 필터링했는데 C, C++, Java, Python, Rust만 사용할 수 있는 이 씁쓸함이란... 아무튼 첫번째로 잡아본 문제는 'CPTI'. 출처 - 소프티어, CPTI Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제는 링크만 남겨놓을까 했었는데, 근시일내에 소프티어 서비스가 종료된다는 공지사항이 떠있길래 부랴부랴 캡쳐해서 백업해뒀다. 아무튼 문제는 다음과 같다. 이진수가 나온 시점에서 비트마스킹 생각이 먼저 떠올라서, scanf()를 사용해서 2진수 문자열을 입력받아 10진수로 변환한 뒤 배열에 저장하는..
2025.05.14 -
[C/C++] 문자열 타입의 MAC ADDRESS 포멧 확인 (sscanf)
Front-end에서 MAC ADDRESS를 전달하는 경우 값이 변경될 수 있으므로, 최소한 전달받은 문자열이 MAC ADDRESS양식에 맞는지는 확인할 필요가 있었다. 특히 MAC ADDRESS를 문자열 형태로 저장할 때는 더더욱이나. 검색하면 어렵지 않게 찾을 수 있는 내용이지만, 업무가 바빠서 사이드 프로젝트를 못하니 뭐라도 정리하기로 했다. #include int sscanf(const char *buffer, const char *format, argument-list); sscanf는 buffer에 저장된 데이터를 지정된 format에 맞는 형식으로 읽어들이며, 성공적으로 변환된 필드 수를 리턴한다. 따라서 00:00:00:00:00:00과 같은 형식으로 문자열을 전달받았을 때, sscanf를..
2019.03.19 -
[C/C++] 정수를 IP주소로 변환하기 (Decimal to IP Address)
정수IP Address 변환은 Convert Decimal to IP, browserling등에서 제공하므로, 제대로 변환되는지 확인이 가능하다. IP주소값의 구조를 알고 있다면, 어렵지 않게 구현이 가능하다. 매번 필요할때마다 찾아보는데, 매번 까먹어서 이번 기회에 대충이나마 정리해두기로 했다. IP 주소(IPv4) IPv4 기준으로 IP 주소는 8bytes짜리 네 개가 구성되어 만들어진, 32bytes짜리 정수형이다. 따라서 다음과 같이 비트 연산을 하면, 언어에 상관없이 정수로 표현된 IP주소를 문자로 변경할 수 있다. void decimalToIPAddress(int param_decimalIp) { printf("IP Address: %d.%d.%d.%d\n", (ip>>24)&0xFF, (ip..
2019.03.18