[프로그래머스] 숫자 문자열과 영단어 (python)
·
Algorithm/Python
1️⃣ 문제https://school.programmers.co.kr/learn/courses/30/lessons/81301 2️⃣ 기억해야 했던 개념들a.isdigit() : digit인지 판단하는 거 까먹어서 함수로 구현함 (기억하기) 3️⃣ 풀이 과정제한 시간 10초 -> 한번만 N의 복잡도면 충분히 가능하겠다 생각 (단순 구현)순차적으로 문자열 파싱함 4️⃣ 코드def is_num(a):if (a == "0" or a == "1" or a == "2" or a == "3" or a =="4" or a == "5" or a == "6" or a == "7" or a == "8" or a == "9"):return Trueelse:return Falsedef solution(s):answer = ""..
[CICD] 블루그린 배포로 변경하기 (spring + nginx + github action)
·
Server/Spring
현재 상황 - 무중단 배포를 적용한 이유[CICD 과정]코드 머지 → github action 실행 → 재배포현재 구조에서는 재배포할 때 기존의 docker container를 제거하고 새로운 container를 실행하는 과정에서 잠깐의 서버 다운타임이 발생한다. 개발할 당시엔 길어야 5초 정도 서버가 다운되는 것이라 큰 상관이 없지 않을까 생각했지만, 실제 서비스 환경에서는 잠깐이라도 서버가 다운되면 프론트엔드 요청을 처리할 수 없는 문제가 발생한다.이를 방지하기 위해 무중단 배포(Zero Downtime Deployment)를 적용하여, 배포 중에도 트래픽이 끊기지 않고 지속적으로 서비스를 제공할 수 있도록 개선하였다. 어떻게 해결할 수 있나?1. 롤링 배포(Roling Deployment)롤링 배포..
[CPP] 2805 - 이진탐색 문제 풀이
·
Algorithm/C++
✅ 문제https://www.acmicpc.net/problem/2805✅ 이진 탐색이진 탐색 문제의 특징이진 탐색 문제는 대부분 데이터가 굉장히 많아서, 탐색에 시간이 굉장히 오래걸릴 거 같은 느낌이 드는 문제이다.이 문제 역시도 데이터(나무의 높이)가 최대 1000000000 일 수 있어, 1씩 높여가면서 탐색을 하려고 할 때 시간 초과가 날 거라는 건 쉽게 짐작할 수 있다.참고로 이 자료를 저장할 수 있을 만한 자료형에 적절히 저장해야 한다. (long long 등)이진 탐색 문제를 풀려면?이진 탐색 문제에서는 정렬을 하거나, 최대 최소 값을 아는 것이 중요하다.중간값을 적절히 찾아야하고, start지점과 end지점을 적절히 업데이트 해야 한다.종료 조건도 중요하다. 언제까지 이 탐색을 계속할 것인..
[CPP] 2444번 - 너비 우선 탐색 복습 (BFS&DFS)
·
Algorithm/C++
문제https://www.acmicpc.net/problem/24444BFS와 DFS?그래프 탐색 알고리즘으로는 흔히 아는 BFS와 DFS가 있다.BFS는 너비 우선 탐색이고, DFS는 깊이 우선 탐색이다.1번과 연결된 노드가 2, 3이고 2와 연결된 노드가 4이라고 가정해 보자. BFS로 탐색하면 1 -> 2 -> 3 -> 4의 경로로 탐색할 것이다. DFS로 탐색하면 1 -> 2 -> 3 -> 4의 경로로 탐색할 것이다. (오름차순으로 방문한다고 가정했을 때) BFS는 같은 깊이의 노드를 모두 탐색하고 난 다음에 더 깊은 노드로 들어간다. DFS는 연결된 가장 깊은 노드로 먼저 이동한다.BFS는 어떻게 구현되는가?BFS는 주로 deque로 구현한다. 왜냐하면, deque는 push_back(), po..
[CPP] 1620 - unordered_map
·
Algorithm/C++
1620 - 나는야 포켓몬 마스터 이다솜https://www.acmicpc.net/problem/1620새롭게 알게된 자료형 - unordered_map특징- 해시 기반으로 검색하는 자로형 (검색이 빠름 O(1)의 복잡도)- 삽입된 순서를 기억하지 않음- 메모리 사용량 많음- 자체적으로 정렬할 수 없음. 정렬하고 싶을 때는 vector 등의 자료형으로 변환한 후에 정렬해야 함. std::vector> sortingArray(entryRecord.begin(), entryRecord.end()); std::sort(sortingArray.begin(), sortingArray.end(), [](std::pair& a, std::pair& b) { retu..
[CPP] 25206 - pair 자료형
·
카테고리 없음
💻 문제 - 25206 번 수학, 구현, 문자열https://www.acmicpc.net/problem/25206✅ 관련 이론pair 자료형std::pair는 두 개의 이기종 객체를 단일 단위로 저장하는 방법을 제공하는 클래스 템플릿이다. 사용 예시는 다음과 같다.접근할 때는 요소.first, 요소.second로 접근한다. vector> gradeTable = {{"A+", 4.5}, {"A0", 4.0}, {"B+", 3.5}, {"B0", 3.0}, {"C+", 2.5}, {"C0", 2.0}, {"D+", 1.5}, {"D0", 1.0}};if (entry.first == grade) {tempGrade = entry.second;}언제 pair 자료형을 사용하면 좋을까? (고민해야 할 부분)p..
[후기] 정주영 창업경진대회 데모데이 관람후기
·
Diary
나는 창업을 하고 싶은 걸까? 창업은 어떤 사람이 하는 걸까? 창업을 해도 되는 걸까? 어떤 사람들이 성공하는 걸까? 이런 고민들을 하게 되는데, 사실 답이 없는 질문들 같다. 나를 망설이게 하는 이런 질문에서 벗어나고자 창업에 더 가까이 다가가보기로 했다.  아래 글에선 데모데이 행사에서 느꼈던 점들을 짧게 작성해보려고 한다.  데모데이 시작에 앞서 셀트리온의 회장님이 줌에서 창업에 대한 조언을 해주셨다. 새로운 도전과 모험을 하는 젊은이가 있는 나라가 되어야한다는 취지의 말을 해주셨다. 창업을 하는 것이 나라를 위한 일이라고 생각한 적 없는데, 창업을 하게 된다면 이런 자부심도 나를 살아가게 하는 말들 중 하나가 되지 않을까 생각했다. 또한, 창업가가 하면 안 되는 것들에 대해서도 말해주셨다. 중도포..
[CPP] 2480 - vector 자료형
·
Algorithm/C++
💻 문제 - 2480 번 조건문https://www.acmicpc.net/problem/2480✅ 관련 이론vector 자료형vector::iterator type으로 요소에 접근한다.vector.begin(), vector.end()로 처음과 끝의 포인터를 확인한다.원하는 index의 값을 얻으려면 vector.begin() - iter로 접근한다. vector.at(index)로 원하는 index에 접근한다. (index 범위가 유효하지 않을 때 out_of_range 오류가 발생한다.)reverse로 접근하고 싶을 때는 vector::reverse_iterator로 접근한다.vector.rbegin(), vector.rend()로 처음과 끝의 포인터를 확인한다.이때, 접근하는 iterator는 처..
[CPP] 11382 - int 관련 자료형
·
Algorithm/C++
💻 문제 - 11382 번 입출력https://www.acmicpc.net/problem/11382 ✅ 관련 이론int 자료형 크기short: 2 bytes 이상int: 2 bytes 이상long: 4 bytes 이상long long: 8 bytes 이상(자료형 크기는 운영체제에 따라 다르기 때문에 sizeof를 통해 확인해야 한다.)signed와 unsignedsigned는 음수, 양수를 저장할 수 있는 타입이다. (ex. 1 bytes면 -128~127 저장)unsigned는 양수만 저장할 수 있는 타입이다. (ex.1 bytes면 0~255저장)문제에 적용한 이론문제에서 필요한 a,b,c는 1~10^12의 값을 가질 수 있음.(최대 13자리)각각의 변수는 최소 8 bytes를 저장할 수 있어야 함..
[SOMA] SW마에스트로 14기 합격 후기
·
카테고리 없음
방학기간에 열심히 준비한 sw마에스트로에 합격! 했다. 휴학하고 좋은 경험을 할 수 있게 된 것 같아 기부니가 좋다~! 소마를 준비하면서 많은 블로그의 도움을 받았기 때문에 다음 기수를 준비하는 예비 소마인에게 도움을 주기 위한 짧은 정보글을 써보려고 한다. 0. 선발 일정 1차 코딩 테스트: 2.25(토) 14:00-16:00 1차 코딩 테스트 합격 발표: 2.28(화) 2차 코딩 테스트 : 3.4(토) 14:00-16:00 2차 코딩 테스트 합격 발표: 3.8(수) 심층 면접 대상자 포트폴리오 제출: 3.13(월) 9:00 마감 심층 면접: 3.16(목) - 3.18(토) 최종 합격 발표: 3.23(목) 1. 서류 서류는 최소 400자씩 총 4문항을 작성해야 한다.(공백제외 최소 400자) 서류는 면..