[C++] 문자열 split
·
Coding Test/Algorithm & Data Structure
들어가며 코딩테스트에서는 문자열을 split하는 로직(특정 문자열을 기준으로 쪼개어 배열화)이 많이 사용된다. 하지만 C++ STL에서는 관련된 함수를 지원하지 않기 때문에 직접 구현해야 한다. split() 구현 // input: 쪼갤 문자열 // delimiter: 기준 문자열 vector split(string input, string delimiter) { vector ret; long long pos = 0; string token = ""; while ((pos = input.find(delimiter)) != string::npos) { token = input.substr(0, pos); ret.push_back(token); input.erase(0, pos + delimiter.leng..
[C++] 순열과 조합
·
Coding Test/Algorithm & Data Structure
순열 vs 조합 순서와 상관 있이 뽑는 경우 > 순열 순서와 상관 없이 뽑는 경우 > 조합 순서를 재배치하여 ~~~한 순서의 경우 최대값을 구하는 문제 > 순열 1, 2, 3에서 3개를 뽑을 때 순열 - {1, 2, 3} 조합 - {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1} next_permutation C++에서는 next_permutation이라는 함수를 제공하고 있다. bool next_permutation (BidirectionalIterator first, BidirectionalIterator last); next_permutation에서는 매개변수로 시작 지점과 끝 지점 iterator을 받는다. 주의 끝 지점의 iter..
[BOJ 2210] 숫자판 점프
·
Coding Test/Problem Solving
문제 설명 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net 예제에 하이라이트를 추가하여 좀 더 보기 쉽게 정리하면 아래와 같다. 이렇게 하여 만들 수 있는 서로 다른 여섯 자리의 개수를 구하면 된다. 어떤 알고리즘을 사용해야 할까? 정사각형 모양의 숫자판 인접한 네 방향으로 이동 한다는 점에서 그래프 탐색 알고리즘을 사용해야 한다고 생각하였다. 그리고 여섯 자리 수를 만들기 위해 깊숙이 들어가기 때문에 BFS(너비 우선 탐색)이 아닌 DFS(깊이 우선 탐색)을 사용해..
[Github Actions] Forked Repository로부터 온 Pull Request의 secrets 접근
·
Github
들어가며 테스트 코드를 작성하며 커버리지 분석 결과를 시각화하기 위해 Codecov를 도입하였다. Codecov - The Leading Code Coverage Solution Code coverage reporting solution for any test suite — Codecov gives developers actionable insights to deploy reliable code with confidence. about.codecov.io Github Repository와 사이트를 연동하여 사이트 내에서 결과를 확인하는 것은 쉽게 했지만, 다른 프로젝트들처럼 PR에 Codecov가 Comment를 달아주는 것은 동작하지 않았다. 삽질 과정을 통해 현재 사용 중인 Github Actions..
서비스에 장애가 발생하면 어떻게 대처해야 할까?
·
Infrastructure
들어가며 서비스 출시가 완료되었기 때문에 이제는 운영을 고려한 개발을 진행해야 한다. ex) API 버전 관리를 통해 API가 변경되어도 기존 API를 사용 가능할 수 있게 하기 (앱 배포 주기가 서버 배포 주기보다 길며, 앱 강제 업데이트를 하지 않으면 이전 버전을 쓰는 사람들도 많기 때문) 등 ... 그리고 서비스 장애가 발생하여도 이를 빠르게 파악하고, 최대한 빨리 서비스가 정상 동작하는 상태로 만드는 것이 중요하다. 장애 원인을 찾아 본질적 원인을 해결하는 것도 중요하지만, 사용자 입장에서 보았을 때 서비스가 뻗어보이지 않는 모습으로 보여주는 것이 중요하다. 위와 같은 비정상적인 UI는 사용자들을 당황하게 만들 것이다. 이렇게 장애가 발생했음을 사용자에게 공지해주거나, 이렇게 장애가 발생한 부분만..
M1에 jMeter 설치하고 사용해보기
·
Test
이전 포스트(https://leeeeeyeon-dev.tistory.com/28)에서 nGrinder를 설치만 하고 ... JDK 18 이슈로 사용하지 못하였다 ... ㅠ 이번 포스트에서는 jMeter를 설치하고 사용까지 해보자 !!! jMeter에 대해서 jMeter는 Java 기반 오픈소스 소프트웨어로, 웹 응용 프로그램 테스트용으로 설계되었지만 이후 다른 테스트 기능으로도 확장되었다. jMeter에서는 아래와 같이 다양한 애플리케이션/서버/프로토콜 유형 로드 및 성능 테스트가 가능하다 Web - HTTP, HTTPS SOAP / REST Webservices FTP / LDAP / TCP Database via JDBC Message-oriented middleware(MOM) via JMS Mai..
짱정연
짱정연의 짱개발자 도전기