프로그래밍 컴퓨터과학은 프로그래밍을 연구하는 것이 아닙니다. 그러나 프로그래밍은 컴퓨터 과학자가 수행하는 중요한 일의 한 부분입니다. 프로그래밍은 우리의 풀이법을 표현하는 방법입니다. 따라서 이 프로그램 언어 표현과 그것을 작성하는 과정은 컴퓨터 과학의 기본이 됩니다. 프로그래밍은 알고리즘을 컴퓨터가 실행할 수 있는 프로그래밍 언어로 인코딩하는 절차입니다. 여러 다른 종류의 프로그램 언어와 컴퓨터가 존재하지만, 프로그래밍의 첫 단계는 알고리즘을 표현하는것 입니다. 알고리즘이 없는 프로그램은 없습니다. 알고리즘은 문제의 현재상태를 표현하는데 필요한 데이터와 의도한 결과를 생성하는데 필요한 일련의 절차로 문제의 해결법을 기술합니다. 따라서 프로그래밍 언어는 절차와 데이터를 모두를 표현할 수 있어야 합니다. ..
전체 글
프로그래밍, 알고리즘과 자료구조 그리고 각종 개발도구의 사용법을 주로 기록하고자 했으나, 어느새 생활정보도 추가하게 되었습니다.개요 windows 환경에서 널리 사용되는 SSH 클라이언트인 PuTTY와 리눅스에 내장되어 있는 텍스트 편집기인 vim을 함께 사용할 경우, 주석으로 설정된 색상이 잘 보이지 않아 이를 해결하고자 합니다. vim color scheme 사용하기 vim의 기본 color scheme의 색상값이 문제이므로 다른 color scheme을 적용해보겠습니다. vim에서 color scheme을 사용하는 것은 매우 간단합니다. vim을 실행한 후 :colorscheme 명령어와 함께 사용하고자 하는 color scheme의 이름을 입력합니다. :colorscheme desert 줄임 표현을 선호한다면 colo 또는 color 만 사용할 수도 있습니다. desert color scheme을 사용하고자 한다면 다음과..
문제(요약) 입력받은 10개의 숫자의 각 자리수를 더하여 그 중 최대값과 최소값을 화면에 출력하라. 풀이 각 자리의 숫자는 나머지 연산자를 통해 쉽게 구할 수 있습니다. #include #include using namespace std; FILE* stream; const int NUM_INPUT = 10; int main(void) { freopen_s(&stream, "sample_input.txt", "r", stdin); int T; cin >> T; for (int t = 1; t > n; int sum = 0; while (n > 0) { int dig = (n % 10); n /= 10; sum += dig; } if (sum > max) { max = sum; } if (sum < min..
문제 (요약) 주어진 문자열이 다음의 조건을 만족하려면 최소 몇 글자가 더 필요한지 구하여라. 6자 이상으로 구성 1자 이상의 숫자 포함 1자 이상의 영소문자 포함 1자 이상의 영대문자 포함 1자 이상의 특수문자(!@#$%^&*()-+) 포함 예시 1) Ab1 은 1개의 특수문자를 포함한 3글자($hk 와 같은)를 추가하면 조건을 만족합니다. 풀이 각 종류별 글자가 포함되어 있는지 확인하여 미 포함시 1글자씩 추가합니다. 해당 상태에서 문자열의 길이가 6글자가 이하인 경우는 6글자가 되도록 보충하고, 그 외의 경우는 추가한 글자 수를 포함합니다. #include using namespace std; bool isNum(char c) { if ('0'
문제(요약) 다음 지시 따라 stack 에 데이터를 입/출력 해라 1 x -Push the element x into the stack. 2 -Delete the element present at the top of the stack. 3 -Print the maximum element in the stack.풀이 문제에서 출력을 요구하는 것은 최대값을 출력하기를 원하기 때문에 stack 에는 입력받은 값이 아닌 최대값을 저장하여 O(1) 에 문제를 해결할 수 있습니다. #include #include #include #include int s[100000]; int main() { /* Enter your code here. Read input from STDIN. Print output to STDO..
#include #include using namespace std; FILE* stream; int N; #define MAX_N 1000 int input[MAX_N]; int fnSolve() { int Ret = 0; for (int i = 2; i > input[i]; } cout
문제 요약 주어진 입력 데이터에서 가장 많이 나온 값을 구하여라. (출현빈도가 동일한 경우 큰 값을 화면에 출력해라.) 풀이 #include #include using namespace std; FILE* stream; int T; int N; int Cnt[101]; int Input[1000]; int fnSolve(void) { int MaxNum = 0; int Ret = 0; for (int i = 0; i T; for (int t = 1; t > N; for (int i =..
개요 Git에는 디버깅에 사용하면 좋은 기능이 있습니다. 대부분의 디버깅은 각 커밋별 코드를 비교하는 것으로 완료되겠지만 때로는 코드의 작성 의도를 확인해야 할 경우도 있습니다. 이러한 경우 코드의 작성자를 확인해야 할 필요가 있습니다. Git의 blame 명령어는 다양한 옵션이 제공되는 유용한 도구입니다. blame은 파일의 라인별 작성자 정보를 확인하는 데 사용합니다. 이 명령어로 누가 마지막으로 코드를 수정했는지 라인별로 확인할 수 있습니다. 따라서 git blame을 사용한다면 누가 무엇을 왜 수정하였는지 추적할 수 있습니다. 일반적인 옵션 -L 옵션은 출력할 대상을 지정한 라인으로 제한하는 역할을 합니다. 예를 들어 README.md 파일의 첫 다섯 줄을 마지막으로 수정한 사람을 확인하고 싶다면..