본문 바로가기

IT195

[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.
[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.
[C++] 프로그래머스, 전화번호 목록 전화번호 목록 코딩테스트 연습 > 해시 > 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은.. 2022. 2. 16.
[PYTHON] 유효한 날짜 포맷 확인 / 정규식, re 유효한 날짜 포맷 확인 이전에 다뤘던 날짜 포맷 유효성 검사를 정규식으로 다시 표현해봤다. https://muabow.tistory.com/326 [PYTHON] 유효한 날짜 포맷 확인 / datetime 유효한 날짜 포맷 확인 특정 패턴을 갖는 날짜 포맷을 확인하는 소스코드이다. 개인적으로는 별도의 모듈을 사용한, 그것도 try-except를 사용한 구조를 무척 좋아하지 않기 때문에 사용하던 프 muabow.tistory.com 소스코드 정말 간단한 정규식을 이용하여 패턴화 시켰다. 날짜 포맷은 여러 가지를 사용할 수 있지만 API의 정적인 format을 해치지 말아야 하기 때문에 다른 format 은 배제한다. 정규식에서 d는 digit를 의미하며 소문자는 string을 사용하지 않는 only dig.. 2022. 1. 28.
[PYTHON] nested JSON 변환 / comparing two nested JSON nested JSON 변환 예제 1. 재귀를 이용해 nested 구조의 key들을 flat 하게 만들어서 dictionary에 key/value 로 저장을 하는 예제이다. 소스코드 """ # JSON data format { "Key_A": "A", "Key_B": { "B_1": "1", "B_2": "2" }, "Key_C": "C" } """ import json json_data = json.loads('{ "Key_A": "A", "Key_B": { "B_1": "1", "B_2": "2" }, "Key_C": "C" }') def parse_nested_json(_json, _path, _parent = "") : for key in _json : if type(_json[key]) == di.. 2022. 1. 27.
[PYTHON] 유효한 날짜 포맷 확인 / datetime 유효한 날짜 포맷 확인 특정 패턴을 갖는 날짜 포맷을 확인하는 소스코드이다. 개인적으로는 별도의 모듈을 사용한, 그것도 try-except를 사용한 구조를 무척 좋아하지 않기 때문에 사용하던 프로그램에서 걷어 낼라고 정리한다. (나중에 까먹을까봐) 소스코드 import datetime def is_valid_datetime(_date) : regex = datetime.datetime.strptime try : regex(_date, '%Y-%m-%d %H:%M:%S') except ValueError: return False return True print(is_valid_datetime("2022-01-27 16:24:00")) print(is_valid_datetime("01-27-2022 16:2.. 2022. 1. 27.