하루 2시간
본문 바로가기
728x90
순서도란? 순서도 (flow chart)의 flow는 ‘흐름’이라는 뜻입니다. 일이 일어나는 순서나 작업의 진행 흐름을 기호와 도형을 이용해서 순서대로 적어놓은 것을 말한답니다. 일의 순서를 흐름선으로 연결하며 각 도형에 정해진 의미에 따라 처리를 하게 됩니다. 밑의 흐름도에서 볼 수 있는 것처럼 타원은 시작과 끝을 의미하고 직사각형은 일을 순서대로 진행한다는 뜻입니다. 마름모 모양은 조건 기호라고 볼 수 있는데 그 조건이 맞는지를 확인하는 역할을 합니다 [네이버 지식백과] 순서도 [flow chart] (천재학습백과 초등 소프트웨어 용어사전) 그럼 기호와 도형에 정의된 의미를 알아보면서 어떻게 쓰이는지까지 알아보자 간단하게 자주 사용되는 순서도만 가져왔다. 이외의 것은 주로 사용되진 않지만 아래 링크에서 참고하길.. 2020. 10. 23.
CodeUp 1095[기초-1차원배열] 이상한 출석 번호 부르기3 -C/C++ #include int main(){ int q,w; scanf("%d\n",&q); int a[q]={}; for(int x=1;x 2020. 10. 23.
CodeUp 1094[기초-1차원배열] 이상한 출석 번호 부르기2 -C/C++ #include int main(){ int q,w; scanf("%d\n",&q); int a[q]={}; for(int x=1;x0;c--){ printf("%d ",a[c]); } return 0; } 저번 문제와 동일하나 출력하는 방식만 반대로 한다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 22.
CodeUp 1093[기초-1차원배열] 이상한 출석 번호 부르기1 -C/C++ #include int main(){ int a[24]={}; int q,w; scanf("%d\n",&q); for(int x=0;x 2020. 10. 21.
CodeUp 1092[기초-종합] 함께 문제 푸는 날 -C/C++ #include int main(){ int a,s,d,f; scanf("%d %d %d",&s,&d,&f); for(a=1;;a++){ if(a%s==0 && a%d==0 && a%f==0){ break; } } printf("%lld",a); return 0; } and 연산자 (모두 참일 때) && 를 이용한 문제이다. 연산자의 개념만 알고있다면 쉽게 해결할 수 있는 문제이다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 20.
CodeUp 1091[기초-종합] 수 나열하기3 -C/C++ #include int main(){ int s,d,f; long long z,a =1; scanf("%lld %d %d %d",&a,&s,&d,&f); for(int q=1;q 2020. 10. 19.
CodeUp 1090[기초-종합] 수 나열하기2 -C/C++ #include int main(){ int a,s,d; long z =1; scanf("%d %d %d",&a,&s,&d); for(int q=1;q 2020. 10. 16.
C언어 - 포인터 활용, call by value, call by reference 간단하게 설명하면 call by value는 변수의 값을 부르는 것이고 call by reference는 변수의 참고(주소)를 부르는 것이다. 사실상 C언어에서는 call by reference 보다는 call by address라고 보는 게 맞다. 공식적으로 C언어에서 call by reference를 지원하지 않는다. call by address를 통해 call by reference와 같이 사용할 수 있다. Call by value 함수의 매개변수에 인수의 실제 값을 복사한다. 이경우 함수 안에서 매개변수끼리 값이 변하기 때문에 실제 인수 값에 영향이 가지 않는다. 즉 Call by value 함수 내에서만 값이 변경되고 실제 인수 값은 변함이 없게 된다. 실제 값을 변경할 필요가 없는 경우에 사용.. 2020. 10. 16.
CodeUp 1089[기초-종합] 수 나열하기1 -C/C++ #include int main(){ int a,s,d,f,z = 0; scanf("%d %d %d",&a,&s,&d); for(f=0;f 2020. 10. 15.
CodeUp 1088[기초-종합] 3의 배수는 통과? -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&s); for(b=1;b 2020. 10. 14.
CodeUp 1087[기초-종합] 여기까지! 이제 그만 -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&h); for(b=1;;b++){ s=s+b; if(s>=h) { break; } } printf("%d",s); return 0; } 간단한 문제다. 값을 입력받고 그 값에 따른 반복문과 문제의 조건을 적절히 사용하면 된다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 13.
CodeUp 1086[기초-종합] 그림 파일 저장용량 계산하기 -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&h); for(b=1;;b++){ s=s+b; if(s>=h) { break; } } printf("%d",s); return 0; } 값을 받아 반복문과 조건문으로 문제에 나와있는 조건을 넣어주면 쉽게 해결되는 것 같다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 12.
CodeUp 1085[기초-종합] 소리 파일 저장용량 계산하기 -C/C++ #include int main(){ long h,b,c,s; scanf("%d %d %d %d", &h, &b, &c, &s); double i = (((h*b*c*s)/8)/1024); printf("%.1f MB",i/1024); return 0; } 문제에 나와있는 공식을 코드화 시켜서 푸는 문제이다. 사실 코딩을 할 때 인자에 범위를 넣어주는 게 가장 안전하다. 단순 알고리즘이기때문에 무시하고 작성하였지만 인자 값의 범위에 따라 선언하는 인자의 형태에도 주의해야 한다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 9.
CodeUp 1084[기초-종합] 빛 섞어 색 만들기(설명) -C/C++ #include int main(){ int i,j,k =0; int r,g,b =2; int c=0; scanf("%d %d %d", &r, &g, &b); for(i=0; i 2020. 10. 8.
CodeUp 1083[기초-종합] 3 6 9 게임의 왕이 되자!(설명) -C/C++ #include int main(){ int a,s,d; scanf("%d",&a); for(s=1;s 2020. 10. 7.
CodeUp 1082[기초-종합] 16진수 구구단? -C/C++ #include int main(){ int a,s,d; scanf("%X",&a); for(s=1;s 2020. 10. 6.
CodeUp 1081[기초-종합] 주사위를 2개 던지면? -C/C++ #include int main(){ int a,s,z,x; scanf("%d %d",&z,&x); for(a=1;a 2020. 10. 5.
C언어 - 포인터 연산, 포인터와 배열의 관계 포인터 연산 예를 들어 포인터 변수 p에서 *p일 경우 주소가 가리키는 값을 표시하고 p일결우 주소 값을 가리킨다. 이점에 주의하여 연산을 해야 한다. *p += 1, *p++, (*p)++ 의 차이점을 알아보자! *p += 10 같은 경우는 쉽게 이해가 될 것이다. 큰 차이점을 보인 것은 (*p)++ 와 *p++이다. 연산자에서 우선순위가 있어서 나타나는 현상이다. 연산자의 우선순위를 따라 ++,--가 포인터 연산자보다 우선이다. 포인터 연산자는 우선순위 2위인 간접 참조*이다. 그래서 포인터보다 먼저 p의 값이 증가되어 주소 값이 증가된다. (int는 4 바이트 이므로 주소 값이 4가 증가된다.) ++,-- 연산자를 사용할 때 주의해야 한다. a = 0x7ffee993598c *a = 5 a++ = .. 2020. 8. 28.
C언어 - 포인터(Pointer) 변수의 메모리 주소, 값 메모리는 메모리의 값과 메모리의 주소와 같이 저장된다. 실행 결과를 보면 a의 값은 5로 나오고 &a는 a의 주소 값을 출력한다. 이때 주소는 고정된 값이 아니라 컴퓨터마다, 실행할 때마다 달라진다. *시스템에 따라 32비트 64비트에 따라 메모리의 범위도 달라진다. 포인터란 메모리의 주소값을 저장하기 위함이다. 메모리 값이 변수에 저장되듯 메모리의 주소는 포인터 변수에 저장된다. 포인터 변수 선언 선언 시 포인터 변수를 사용한다. 자료형* 변수명 - int* hi; 자료형 * 변수명 - int * hi; 자료형 *변수명 - int *hi; 세 가지 방식으로 선언 가능하다. 편한 방식으로 사용하면 된다. 포인터는 선언 시 반드시 먼저 초기화되어야 한다. 그렇지 않으면 의도하지 않.. 2020. 8. 21.
CodeUp 1080[기초-종합] 언제까지 더해야 할까? -C/C++ #include int main(){ int a,d,s = 0; scanf("%d",&a); for(s==1;d 2020. 8. 20.
CodeUp 1079[기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기 -C/C++ #include int main(){ char a; while(a!='q'){ scanf("%c ",&a); printf("%c\n",a); } return 0; } 문제 1073, 1074번 같이 값이 0 까지 혹은 1까지 만 출력하는 것과 같다. 단지 입력값이 q 일 때 프로그램이 종료될 뿐. 과정은 같다고 생각하고 풀면 될 것 같다. 2020. 8. 19.
CodeUp 1078[기초-종합] 짝수 합 구하기 -C/C++ #include int main(){ int a,d; d=0; scanf("%d",&a); for(int i=0;i 2020. 8. 18.
CodeUp 1077[기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기 -C/C++ #include int main() { int a,s = 0; scanf("%d",&a); while(a+1 !=s){ printf("%d\n",s); s++; } return 0; } 전 문제와 다른 점은 문자가 정수로 입력된점이다. 2020. 8. 17.
CodeUp 1076[기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기 -C/C++ #include int main() { char a,s = 'a'; scanf("%c",&a); while(a+1 !=s){ printf("%c ",s); s++; } return 0; } 입력 값이 문자로 바뀐것 그리고 입력한 값부터 0이나 1부터 까지가 아닌 a부터 시작하는 코드이다. 전 문제와 크게 다르진 않지만 문자열도 결과적으로 아스키 코드로 인식을 하기때문에 가능한 코드이다. 2020. 8. 16.
CodeUp 1075[기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2 -C/C++ #include int main() { int a; scanf("%d",&a); while(a!=0){ a--; printf("%d\n",a); } return 0; } 아까와 범위만 다를 뿐 같은 문제다.. 범위에 대한 개념을 알기 위한 문제인 것 같다. 2020. 8. 15.
C언어 메모리 구조 [스택(Stack), 힙(Heap), 데이터(Data)영역] 코드(CODE) 영역 프로그래머가 작성한 소스코드가 들어있는 부분이다. 실행할 프로그램의 코드가 저자오디는 영역으로 텍스트(code) 영역 이라고도 부른다 CPU는 코드 영역의 코드를 하나씩 수행한다. 데이터(DATA) 영역 데이터 영역에는 전역 변수와 정적변수가 선언된다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 힙(HEAP) 영역 프로그래머가 메모리를 직접 관리해야하는 영역이다. 동적 메모리 할달을 이용해 사용자에 의해 메모리의 크기가 동적으로 할당되고 해지는 필수로 해야된다. 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다. 스텍 영역은 반대로 할당된다. (동적할당-iyk2h.tistory.com/81) 스택(STACK) 영역 지역 변수와 매개변.. 2020. 8. 14.
CodeUp 1074[기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1 -C/C++ #include int main() { int a; scanf("%d",&a); while(a!=0){ printf("%d\n",a); a--; } return 0; } 입력받은 값의 -1 을 하면서 1까지 나열하는 코드이다. while 문이 가장 적합해보여 while 문을 활용했다. 2020. 8. 14.
728x90