본문 바로가기

반응형

programming/문제 해결

(9)
[Python, Unix, Ubuntu] Python 프로젝트를 유닉스에 배포 시 생기는 오류 - (ImportError: No module named '') 1. 개요 비트코인 자동매매 시스템을 만들고 Unix 서버에 배포하였다. 클라우드를 이용하고 싶었지만 정말 돈이 감당이 안돼서 무서웠다. 그래서 안쓰는 노트북에 Ubuntu를 설치하고 서버로 사용하고 있는데, 해당 과정에서 발생한 오류를 해결하는 과정을 적고자 한다. 2. 본문 가장먼저 만난 오류는 ImportError이다. 내가 작성한 Python 객체를 import해서 사용하기 때문에 해당 프로젝트를 path를 설정하지 않으면 module을 찾지 못한다. 다음은 내가 작성한 프로젝트의 구조이다. 해당 경로에서 machine, db에 정의된 모듈을 써야하지만 해당 path를 찾지 못하면 아무 의미 없다. 다음과 같은 명령어로 python이 모듈을 import하는 경로를 알 수 있다. (리눅스 환경에서)..
[C++, 코딩테스트] '인덱스'로 특정 문자 제거하기 1. 개요 구현 문제단원을 풀어보는 과적엥서 문자를 찾아 지우는 erase()함수는 있어도, 인덱스를 기준으로 삭제해주는 함수가 없기에 만들어보면 유용할 것 같다는 생각이 들었다. 인덱스를 기준으로 문자 하나를 입력했을 때 해당 자리의 문자를 제거해주는 함수를 만들어 보았다. 2. 이론 구현 이론은 간단하다. 해당 인덱스까지의 문자열을 자르고 그 뒤의 인덱스를 다시 잘라 기존 전자의 인덱스와 더해주면 된다. 3. 코드 - 인덱스 기준의 문자 제거 코드 string erase_char(string str, int index) { string buff; buff = str.substr(0, index); buff += str.substr(index + 1, str.size() - (index + 1)); r..
[C++, 코딩 테스트] 문자열을 입력 받고 문자로 추출, 공백으로 구분하기 - (getline() 함수 사용시 주의할 점) 1. 개요 최근 알고리즘 테스트에 현타란 현타를 강하게 맞아서 '나동빈'님의 책인 '이것이 취업을 위한 코딩테스트다.' 라는 책을 통해 체계적으로 공부중이다. 그중 구현 단원에서 문자열에 관한 C++문법을 정리해봐야 겠다는 생각이 들어 글을 쓰게 되었다. 예제 4-1의 상하좌우 문제이다. 2. 이론 String자료형은 매번 문자형의 배열을 사용하던 나에게는 신세계이자 구원자였다. 그러나 C++도 결국 C계열인지 메모리와 같은 부분을 신경써야 한다는 것을 뼈저리게 느끼는 중이다. 그래도 C에 비하면 심각하게 어려운 것이 아니니 관련 자료를 찾으며 공부하였다. 이번 글에서는 C++에서 문자열을 입력받고 이를 문자로 추출할때, 그리고 버퍼를 비우는 방법에 대해 작성할 것이다. 3. 예시 코드 - 문자열에서 문..
[C++] 문자열에서 정수, 실수, 문자 추출하기 - (stringstream) 1. 개요 백준 알고리즘 문제를 풀다가 문자열에서 정수들을 추출해야 하는 경우가 발생했다. 문자열은 질리도록 나를 괴롭혔고 날이 날인지라 정말 극강의 하기 싫음을 느끼고 혹시나 하는 마음에 구글링을 시작했다. 'string 토큰 분리'라는 키워드로 구글링을 해보니 'stringstream' 이라는 클래스가 나오고 나는 바로 이 클래스를 공부하기 시작하였다. 2. 이론 stringstream은 문자열에 자신이 원하는 자료를 찾고자 할 때 유용한 클래스이다. 예를 들어 "76 65.7"이라는 문자열이 있을 때 76이라는 정수만 뽑고 싶을 때 stringstream클래스를 사용하면 훨씬 간편하게 구용할 수 있다. 다음 코드들을 보자. 3. 예시 코드 - 문자열에서 정수 추출하기 백문이 불여일견! 다음 코드를 ..
[C언어, C++] 재귀함수 내에서 재귀호출을 두번 할때 주의점 1. 문제 자료구조 tree공부하다가 입력된 정수를 가지고있는 data를 찾아주는 함수를 작성하고 싶었다. 그 함수는 값을 반환함과 동시에 tree를 전체적으로 탐색하는 역할을 수행해야한다. Tree를 직접 구성해보신 분들은 알겠지만, tree의 탐색은 재귀함수로 작성하는 것이 정말 간편하다. (나도 내입에서 재귀함수가 편하다고 할줄은 몰랐다......) 문제는 여기서 발생한 것이다. root → 왼쪽 트리 → 오른쪽 트리 순으로 탐색하는 전위탐색을 구현하였는데, 왼쪽 탐색을 진행하여 결과가 없을 때, return문이 중간에 끼어있으면 오른쪽 트리를 탐색하지 않고 재귀를 멈추는 오류가 발생하였다. 따라서 재귀호출 안에서 재귀호출을 두번할 때 발생하는 문제에 대해 알 수 있게 코드를 작성해보았다. 2. 해..
[C언어, Python] 논리 연산자와 자주 발생하는 실수! 1. 문제 이 문제는 백준 알고리즘 2941번과 관련된 문제이다. 문제를 보면 알겠지만, 나는 이 문제를 논리 연산자와 반복문 만으로 해결하고자 하였다. 혹시 문제가 궁금하신 분들은 아래의 링크로 들어가면 볼 수 있다. 문제: https://apape1225.tistory.com/30[백준 알고리즘] 2941번 - 크로아티아 알파벳1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가��apape1225.tistory.com 보면 알겠지만 논리 연산자에 괄호도 있고...... && 연산자를 맨 뒤에다 쓰고...... 복잡해 보이기는 하지만, 나름 시행착오를 통해 작성..
[C언어, C++] 문자를 정수로 바꾸는 방법! (문자 정수 형변환) 1. 개요 드디어 중간고사가 끝났다! 머리가 많이 복잡한 상황이지만, (군대, 성적, 자격증) 그래도 가장 먼저 이 글을 쓸 수 있어서 좋다! 이번 문제는 문자를 정수로 바꾸는 방법이다! 사실 문자열을 문자로 바꾸는 방법은 많다! 그러나 문자열이 아닌 하나의 '문자'를 정수로 바꾸는 함수는 아무래도 없는 것 같다! 다양한 방법을 사용할 수 있지만 나는 최대한 간단한 방법을 찾고자 하였다. 분명 아스키 코드를 사용할 수 있을 것 같았다...... C언어가 어려운 문자이긴 하지만 문자에 대한 계산에 있어서는 나름 편하다고 생각하기 때문이다(개인적인 의견으로). 자 그럼 다음은 문제 해결 과정이다. 2. 문제 해결과정 사실 이 문제의 해결 필요성을 느낀 이유는 백준알고리즘 11720번 때문이었다. 문제를 보면..
[C언어, C++] '%' 문자 출력 - (서식문자) 1. 개요 이 문제는 백준 알고리즘 4344번을 풀면서 겪은 문제이다. 문제를 풀기 위해선 '%' 문자를 cmd창을 활용하여 출력해야 했는데, printf("") 함수 안에 %을 넣는 방식으로는 출력되지 않았다. 다음은 자세한 설명이다. 2. 문제 나는 cmd창에 40.000% 라는 문자열을 출력해야 했다. 그래서 다음과 같이 코드를 작성하였다. #include int main(void) { printf("40.000%"); return 0; } 그러나 위와 같이 코드를 작성하면 다음과 같이 출력된다. 40.000 '%' 가 출력되지 않은 것이다. 그래서 내가 사용한 방법은 이스케이프 시퀀스 문자를 출력하고 싶을 때 사용하는 방법인, 앞에 \를 넣는 방법이다. 그래서 다음과 같이 코드를 짜봐았다. #in..