목록분류 전체보기 (768)
우노
문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N x M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 카드들이 N x M 형태로 놓여 있을 때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만드시오. 입력 조건 첫째 ..
문제 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정한다. 예를 들어 순선대로 2, 4, 5, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 +6 +5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어 순서대로 3, ..
들어가기 앞서, 코딩 테스트에서, 문제의 제한 시간은 일반적으로 1~5초 가량이다. 일반적인 CPU 기반의 개인 컴퓨터나 채점용 컴퓨터에서 1초에 실행할 수 있는 연산량은 1억번이다. 따라서, 문제를 풀기 전, 문제의 시간 복잡도를 확인한다면, 얼마나 효율적인 알고리즘을 작성해야하는지 눈치 챌 수 있다. 예를 들어, 주어진 N의 범위가 최대 5,000이며, 주어진 제한 시간이 1초라면, 시간 복잡도가 O(N^3)인 알고리즘의 연산 횟수는 10억을 넘어가며, 10초 이상의 시간이 걸리므로, 사용하기 어렵다. N 의 범위와 시간 복잡도에 따른 연산 횟수 N 의 범위가 1,000 일 경우 O(N) : 1,000 O(NlogN) : 10,000 O(N^2) : 1,000,000 O(N^3) : 1,000,000..
DevOps 란? 개발 및 운영을 관리하고 CI/CD를 위한 파이프라인을 구성하고 자동화하는 역할을 의미합니다. CI/CD 란? 애플리케이션 개발 단계를 자동화하여, 보다 빠른 주기로 고객들에게 서비스를 제공하는 개발 방식입니다. CI 란? Continous Integration(지속적 통합)으로, 빌드, 테스트, 머지를 자동화하는 것을 의미합니다. 만약, 개발자가 하위 브랜치의 코드를 업데이트 했을 경우, 개발자가 직접 해당 브랜치를 빌드하고 테스트한 뒤, 문제가 없는지 확인하고 main 브랜치와 병합한다면, 시간이 많이 소요될 수 밖에 없습니다. 하지만, CI 서비스를 사용한다면, 하위 브랜치의 코드를 업데이트 하는 것만으로도, 빌드와 테스트를 자동으로 트리거되어 검증할 수 있게 됩니다. 결과적으로,..
에러 결과 [import tflite_runtime.interpreter as tflite] 을 사용해 tflite 모델을 로드할 경우, import tflite_runtime.interpreter as tflite model = tflite.Interpreter( "./model.tflite", experimental_delegates=[tflite.load_delegate('libedgetpu.so.1')]) 아래와 같은 에러가 발생하는 경우가 있습니다. ImportError: generic_type: type "InterpreterWrapper" is already registered! 에러 원인 “import tensorflow as tf” 와 “import tflite_runtim..
변경 전, 버전 확인 !python --version 버전 변경 (원하는 버전으로 숫자만 변경해서 입력, 약 5분 소요) !wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz !tar xvfz Python-3.6.9.tgz !Python-3.6.9/configure !make !sudo make install 변경 후, 버전 확인 !python --version
들어가기 앞서, Curl 로 데이터를 다운 받을 경우, ‘>’ 를 사용하면, 특정 디렉토리에 원하는 파일명으로 다운받을 수 있습니다. 예제 코드 curl -O 다운로드주소/데이터.zip > 다운로드경로/데이터.zip
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/72410 문제 풀이 예제 코드를 참고해, 각 단계별로 문자열 처리 예제 코드 #include #include #include #include using namespace std; string solution(string new_id) { string answer = ""; // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. for (auto i=0; i=16){ new_id.erase(15); if (new_id[new_id.size()-1]=='.'){ new_id.erase(new_id.end()-1); } } // 7단계 new_id의 길이가 2자 이하라면, ne..
들어가기 앞서, 문자열 제거는 아래와 같이 다양한 문제들이 존재합니다. 특정 Index 의 문자를 제거 특정 문자를 제거 특정 문자를 제외한 모든 문자를 제거 각 문제에 대한 해결 방법을, 예제 코드를 통해 다뤄보겠습니다. 특정 Index 의 문자를 제거 #include #include using namespace std; int main() { string str1 = "ABCDE"; str1.erase(str1.begin()); // 첫 글자 삭제 cout
들어가기 앞서, C++ 에선, replace 와 regex_replace 를 사용해, 특정 문자열을 변경 및 치환할 수 있습니다. replace replace 는, 대상 문자열의 위치 기반으로 문자열을 변경할 수 있습니다. 사용 방법 문자열.replace(변경 시작 index, 변경 길이, 변경 문자열) 예제 코드 다양한 오버로딩이 존재하지만, 간단한 예제만 다루겠습니다. #include #include using namespace std; int main() { string str1 = "aabbcc"; cout