본문 바로가기

전체 글131

[C++] 카드 뭉치 카드 뭉치코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한 후 두 번째 카드 뭉치에서 "want"와 "to"를 사용하고 첫 번째 카드뭉치에 "drink"와 "water"를 차례대로 사용하면 원하는 순서의 단어 배열을 만들 수 있습니다.  문자열로 이루어진 배열 cards1, car.. 2024. 6. 26.
[C++] 명예의 전당 (1) 명예의 전당 (1)"명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다.  이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 진.. 2024. 6. 26.
[C++] 문자열 내 마음대로 정렬하기 (sort 커스텀) 문자열 내 마음대로 정렬하기문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.  입출력 예["sun", "bed", "car"]1["car", "bed", "sun"]["abce", "abcd", "cdx"]2["abcd", "abce", "cdx"]  처음에 map으로 주어진 배열의 문자열과 인덱스를 저장하고 정렬하는 코드를 작성하려 했는데, sort 함수를 커스텀하여 그냥 주어진 문자열의 해당 인덱스 값을 기준으로 정렬하는 코드를 작성하여 풀이했습니다. .. 2024. 6. 24.
[C++] 푸드 파이트 대회 (얕은복사) 푸드 파이트 대회수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.  이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회.. 2024. 6. 24.
[C++] 두 개 뽑아서 더하기 (set) 두 개 뽑아서 더하기정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.  입출력 예[2,1,3,4,1][2,3,4,5,6,7][5,0,2,7][2,5,7,9,12]  2중 반복문을 이용하고 vector의  find 연산을 이용하여 중복 값을 체크하고 마지막에 정렬하여 풀이하였습니다.   풀이#include #include #include using namespace std;vector solution(vector numbers) { vector answer; for(int i = 0; i     추가적으로 set STL을 활용하면 .. 2024. 6. 22.
[C++] 가장 가까운 같은 글자 가장 가까운 같은 글자문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때,  각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. 따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.   입출력 예"banana"[-1, -1, -1, 2, 2, 2]"foobar"[-1, -1, 1, -1, -1, -1]  2중 반복문으로 해당 글자 인덱스부터 뒤에서 앞으로 해당 글자가 있는지 찾아갑니다.   풀이#include #include using namespace std;vector solution(string s) { vector.. 2024. 6. 22.
[C++] 문자열 겹쳐쓰기 (replace) 문자열 겹쳐쓰기문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.   입출력 예"He11oWor1d""lloWorl"2"HelloWorld""Program29b8UYP""merS123"7"ProgrammerS123"   풀이#include using namespace std;string solution(string my_string, string overwrite_string, int s) { string answer = ""; answer = my_string.repl.. 2024. 6. 15.
[EKS] Github Action과 ArgoCD로 CI/CD 파이프라인 구축 AWS EKS환경에서 쿠버네티스 클러스터를 생성하고 CI/CD 파이프라인을 구축합니다. CICD는 지속적통합 / 지속적배포라는 개념으로 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 서비스를 제공하는 방법입니다. 코드를 통합하고 배포하는 과정의 파이프라인을 통해 자동화할 수 있습니다. CI ( 지속적 통합) CI는 작성한 코드를 지속적으로 통합하는 방법입니다. 코드 변경이 발생할 때마다 자동으로 빌드 및 테스트를 수행하여 품질을 높이고 문제를 빠르게 감지할 수 있습니다. 개발자가 코드를 원격 코드 저장소에 push하면 원격 코드 저장소에서 코드를 가져와 유닛테스트 후 빌드를 진행합니다. 이 결과물을 다른 컴포넌트와 잘 통합되는지 확인합니다. CD (지속적 배포) 소프트웨어 .. 2024. 1. 24.
[EKS] 3티어 아키텍처 (RDS, Redis, 인그레스, tls, 도메인연결) AWS EKS를 이용하여 쿠버네티스 환경의 3티어 아키텍처를 구성합니다. 구성환경은 VScode를 사용합니다. 먼저, 로컬에서 kubectl 명령을 사용하기 위해 eksctl을 설치해야합니다. 아래 블로그를 참고하여 진행합니다. 04_AWS CLI와 PowerShell을 이용한 EKS 관리 오늘은 AWS의 Command Line Interface와 윈도우의 PowerShell을 이용한 EKS 관리 시간입니다. 당연히 AWS CLI v2 설치와 함께 kubectl, iam_authenticator 설치 및 kubeconfig 파일에 리전과 클러스터를 업데이트하는 작업 virtualtech.tistory.com 이제 쿠버네티스 클러스터를 생성합니다. 아래명령을 입력하여 노드 3개를 가지고 psy라는 키페어를.. 2024. 1. 8.