본문 바로가기

전체 글269

[C/C++] C++ string ltrim, rtrim, trim ltrim, rtrim, trim C++11 환경에서 작업을 하는데 trim 기능이 없어서.. :( 직접 만들기는 귀찮고 찾다보니 스택오버플로우 댓글 중에 깔끔하게 구현한 코드가 있어서 기록용으로 정리해본다. 소스코드 #include #include #include string ltrim(string _s) { _s.erase(_s.begin(), find_if(_s.begin(), _s.end(), not1(ptr_fun(isspace)))); return _s; } string rtrim(string _s) { _s.erase(find_if(_s.rbegin(), _s.rend(), not1(ptr_fun(isspace))).base(), _s.end()); return _s; } string tri.. 2022. 3. 23.
[PHP] 변수명으로 함수 호출 / function_exists() 변수명으로 함수 호출 PHP 개발을 하다보면 함수명을 동적으로 호출해야할 때가 있는다. 생각보다 간단하므로 아래 소스코드를 참고 하면된다. 소스코드 - test(), test2() 두개의 함수를 생성하고 변수에 함수명을 입력한다. 1. function_exists() 를 이용하여 해당 문자열과 동일한 함수가 있는지 확인한다. 2. 해당 문자열과 동일한 함수가 존재한다면 변수에 () 기호를 붙여 함수를 호출하여 동작하는지 확인한다. 3. 해당 문자열과 동일한 함수가 없다면 예외 처리를 한다. 결과 test test2 test3 - function not found 변수와 동일한 함수가 실행되는 것을 확인할 수 있다. 즉 함수 call point 를 꼭 fixed하지 않고 상황에 따라서 가변적으로 함수를 c.. 2022. 3. 4.
[PHP] URI '/'(slash) 중복 처리 / preg_replace, 정규식 URI '/'(slash) 중복 처리 URI를 처리하다보면 또는 문자열 처리를 하다보면 '/' (slash)를 사용자(또는 동료 개발자)가 중복으로 입력하는 경우가 종종 생긴다. 실수 또는 string merge 등등의 경우에 경로 끝에 / 처리하고 붙이는 string 선두에 / 이 있다던지.. 어쨌든 중복된 / 를 정규식을 이용하여 없애려고 한다. 소스코드 결과 string(23) "//api////device//status" string(18) "/api/device/status" 정규패턴에서 나타내는 #//+# 은 # : escape character 를 있는 그대로 사용한다 라는 의미. /를 \/ 이렇게 표현하지 않아도 되도록.. + : multiple 이란 의미, {//, }과 같고 //, //.. 2022. 3. 4.
[PHP] nested JSON key 추출 / 재귀함수 활용, recursive call nested JSON 변환 PHP에서 재귀 함수를 이용해 nested 구조의 key들을 /로 구분 짓는 URI string으로 변환하는 예제이다. 이 또한 Restful API 구현에 필요한 기능의 일부이니 활용 가능한 환경이라면 도움이 되길 바란다. 이전에 python 으로 작성한 변환 방식과 유사하니 참고. https://muabow.tistory.com/327 [PYTHON] nested JSON 변환 / comparing two nested JSON nested JSON 변환 예제 1. 재귀를 이용해 nested 구조의 key들을 flat 하게 만들어서 dictionary에 key/value 로 저장을 하는 예제이다. 소스코드 """ # JSON data format { "Key_A": "A", .. 2022. 3. 3.
갤럭시 폴드3 구매 후기 & 케이스 팁 갤럭시 폴드3이 나온지 6개월 정도 지났지만 여전히 가격이 사악하다. 성지를 가도 여~~~전히 비싸다. 그래서 본인은 그냥 지인 매장에서 정가를 주고 샀다.... 나중엔 후회할지 몰라도 지금은 좋다 :) 일단 구매후기는, 1. 무게는 확실히 묵직하지만, 남자 기준, 그것도 노트+ 처럼 무거운 폰 쓰던 사람은 크게 문제가 없다. -> 유투브고 블로그 후기고 보면 무게땜에 팔아치운다고 무섭게 많이 써두지만 솔직히 손크고 원래 묵직한걸 쓰던 입장에선 그렇게 무거운거 1도 모르겠다.. 오히려 길죽하고 펼쳤을땐 넓어서 무게 밸런스가 좋아 들긴 좋았다. 하지만 확실히 통화할때 팔이 금방 뻐근해지는건 사실이다. 2. 가운데 주름 or UDC가 신경 쓰여서 못쓰겠다. -> 아무것도 하지 않는 화면만 하루종일 바라보면 .. 2022. 2. 23.
[C++] 프로그래머스, 베스트앨범 타이틀 코딩테스트 연습 > 해시 > 베스트앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한 사항 genres[i]는 고유번호가 i인 노래의 장르입니다. play.. 2022. 2. 23.
온라인 코딩 테스트 관련 개인적인 생각들.. 본인은 8년도 더 전에 온라인 코딩 테스트를 치러본 적이 있다. EA 채용 관련해서 코딩 테스트를 진행했는데 사실 그전까지는 A4 용지에 손 코딩을 했기 때문에 뭐 손 코딩보다 어려울까?라는 생각이었고 결과는 처참하게 완패하였다. 처음으로 접해보는 외국어 코딩 테스트(codility)에서 코딩은커녕 문장 해석도 안돼서 결국 ^^... 그때부터였다. 막연하게 온라인 코딩 테스트가 어렵게 느껴진게. 그 뒤로 비교적 근래에 온라인 코딩 테스트란 게 생긴 걸 보았고 요샌 백준이나 최근에 접한 프로그래머스 같은 곳이 엄청 핫 하단 걸 알게 되었다. 물론 이웃 블로거들이 스터디하고 정리하는걸 꾸준히 봐왔고 문제도 한글이니 해볼 만하겠다고 생각하여 본인도 한 번씩 재미 삼아 풀어봤는데 뭐 재미 삼아 풀 수준이 아니더.. 2022. 2. 16.
[C++] 프로그래머스, 더 맵게 더 맵게 코딩테스트 연습 > 힙(Heap) > 더 맵게 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 so.. 2022. 2. 16.