전체 글

전체 글

    [C] 백준 8958번 : OX퀴즈

    https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 코드 #include int main() { int N,sum; char a[80]; int score; scanf("%d",&N); while(N != 0) { sum = 0; score = 1; scanf("%s",a); char *ok = a; while(*ok) { if(*ok == 'O') {sum += score; score++;} else{score = 1;} ok..

    프로그램을 누가,왜 번역하는가?(프로그래밍 언어의 역사)

    컴퓨터의 배선을 직접 조작해야하는 하드웨어 프로그래밍 최초의 컴퓨터를 에니악(ENIAC)으로 알고 있는 분들이 많습니다. 하지만 정말 최초의 컴퓨터는 콜로서스인데요. 당시 콜로서스가 극비의 임무를 맡고 있었기 때문에 대중에게 공개가 늦게되었다고 하네요. 두 컴퓨터는 사실 컴퓨터라기보다는 계산기에 더 가까웠습니다. 주 기능이 연산이었기 때문이죠. 또 이때는 지금처럼 연산기호나 프로그래밍 언어를 사용하여 코딩을 할 수 없었습니다. 컴퓨터의 배선을 직접 조작하는 '하드웨어 프로그래밍'을 해야만했습니다. 소프트웨어 프로그래밍의 탄생 하지만 폰 노이만 아저씨가 새로운 구조를 만들어줍니다. '내부기억장치'를 탑재해서 프로그램을 저장하고 중앙처리장치가 이 프로그램을 읽어서 구동시키게 하는 '소프트웨어 프로그래밍'의 ..

    많은 수의 전역변수를 선언하면 안될까?

    전역변수는 코드가 복잡해지면 복잡해질수록 독이 된다. 하나의 전역변수를 여러 개의 함수가 사용한다고 해보자. 위에 봤다 아래 봤다가 어지럽다. 이는 유지,보수를 어렵게 하는 원인이 된다. 또 여러 개의 전역변수를 선언했다고 가정하면 변수는 전역변수만 있는 것이 아니기 때문에 헷갈릴 수 있다. 즉, 프로그램 구조가 복잡해지기 때문에 많은 수의 전역변수를 사용하는 것은 지양해야한다. 또 어디에서든 갖다 쓸 수 있다는 것은 데이터 값이 의도하지 않게 변경될 수 있다는 것임을 의미하기도 한다. 프로그램이 종료될 때 까지 메모리에 존재한다고하여 공간이 낭비될 수 있다.

    공용체(union),리틀 엔디안(Little Endian)과 빅 엔디안(Big Endian)

    공용체(Union) 많이 사용하는 것은 아니지만 C언어에서 제공하는 것들 중 하나입니다. 공용체는 구조체와 비슷하지만 구조체와 달리 메모리를 '공유'합니다. 예를 들어보면 struct A { int i; char j; }; 구조체는 이와 같이 int i와 char j가 차지하고 있는 메모리는 독립적입니다. 저희가 알고있는 것과 같죠. 그렇다는 공용체는? union A { int i; char j; }; 위 그림처럼 각 멤버들의 시작주소는 동일합니다. 즉 메모리를 공유하고있습니다. 테스트해보기 위해 코드를 보겠습니다. #include union A { int i; char j; }; int main() { union A a; a.i = 0x12345678; // 4바이트 printf("%x", a.j); ..

    <서울 자가에 대기업다니는 김 부장 이야기 1 김 부장 편> 리뷰/서평

    별점 ★3.8/5 대학생의 입장에서 부장의 시선이 궁금해 읽어 본 책이다. 서울 자가에 대기업 다니는 부장님의 마인드셋은 어떻고 어떤 배울 점이 있을까 싶어서 읽어봤다. 하지만 이런 기대에는 못 미치는 내용이었다. 부장이라는 직위,회사를 떠나 부장이기 이전에 누군가의 가족,친구인 인간의 본질을 꿰뚫는 내용이었다. 인상 깊었던 구절 "인생은 짜장면이냐 짬뽕이냐 선택의 연속이야." -짜장면과 짬뽕 중 무엇을 먹을 지 고민할 때가 있다. 하나를 선택하여 후회없이 먹는 경우도 있지만 그렇지 않은 경우도 있다. "아 그냥 짜장면 시킬걸."과 같이 말이다. 하지만 과거로 돌아가 짬뽕을 시킨다고 하더라도 후회하지 않는다는 보장은 없다. 무엇을 선택하든 우리는 후회할 수 있다. 물론 중요한 선택이라면 고심하는 것이 마..

    [C] 백준 1546번 : 평균

    https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 코드 #include #include int main() { int N; float *score; int M = 0; float sum,ave = 0; scanf("%d",&N); score = (float*)malloc(sizeof(float) * N); for(int i = 0; i < N; i++) { scanf("%f",&score[i]); if(M < score[i]) { M = s..

    [C] 백준 3052번 : 나머지

    https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 코드 #include int main() { int a[10]; int count = 0; for(int i = 0; i < 10; i++) { scanf("%d",&a[i]); a[i] %= 42; } for(int i = 0; i < 9; i++) { for(int j = i + 1; j < 10; j++) { if(a[i] == a[j] && a[i] != 42) { // a[i] != 42 조건을 넣어주지 않는다면 그냥 a[i] == a[j]한 것과 같게 중복..

    <인간 실격> 리뷰/서평

    별점 ★4.0/5 책 제목이 굉장히 인상적이었다. 인간 말종,짐승 같은 표현이 아니라 '인간 실격'이라는 표현은 굉장히 담백하면서도 이끌렸다. 1948년 일본 소설인만큼 전반적인 내용이 그 당시 일본의 불안하고 우울한 시대상과 맞아 떨어진다. 분위기가 밝지 않아서 그런가 몰입도 잘되고 가볍게 읽기 좋은 소설이다. 인상 깊었던 구절 "인간의 삶에는 서로 속이면서 이상하게도 전혀 상처도 입지 않고 서로가 서로를 속이고 있다는 사실조차 알아차리지 못하는 듯 정말이지 산뜻하고 깨끗하고 밝고 명랑한 불신이 충만한 것으로 느껴집니다." -시대를 타지 않는 불변의 진리인 것 같다. 인간들이 구성하는 사회에서는 속일 수 밖에 없게되는 사실을 문학적으로 잘 표현한 것 같아 인상깊었다. "'세상이란 개인이 아닐까.'하는 ..

    [C] 백준 2439번 : 별 찍기 - 2

    https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 코드 #include int main() { int N; scanf("%d",&N); for(int i = 1; i

    [C] 백준 15552번 : 빠른 A+B

    https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 코드 #include int main() { int T; scanf("%d",&T); for(int i = 0; i < T; i++) { int a,b = 0; scanf("%d %d",&a,&b); printf("%d\n",a + b); } } ☞ 풀이 전 문제에서 테스트케이스의 개수 T가 주어진다고 하였으므로 인트형 변수 T를 선언하였습니다. 이후는 테스트케이스만큼 인트형 변수를 2개씩 받아 더한 결과 값을 바..