All
189[NYPC 2018 예선]아이템 구매 (C)
문제 링크:https://nypc.github.io/2018/2018_online_3.html https://nypc.github.io/2018/2018_online_3.html ← 목록으로 아이템 구매 게임개발자 상현이가 개발 중인 게임의 상점에는 체력 물약과 마나 물약 두 종류의 아이템만 판매하고 있다. 상현이는 유저들의 판매 로그를 기록해야하는데, 실수로 그만 유저들이 상점에서 사용한 총액만 기록하고 말았다. 체력 물약의 가격은 P원이고, 마나 물약 가격은 Q원이다. 그리고 한 유저가 상점에서 사용한 총액은 W원이다. 상현이를 도와 유저가 상점에서 구매한 아이템 개수를 구하는 프로그램을 작성하시오. 입력 형식 첫 줄에 체력 nypc.github.io 코드 ...더보기 #include #include..
문제풀이/기타 문제 2019.07.01 Plorence[NYPC 2018 예선]승리팀 찾기 (C)
문제 링크:https://nypc.github.io/2018/2018_online_4.html https://nypc.github.io/2018/2018_online_4.html ← 목록으로 승리팀 찾기 우성이는 카트라이더를 즐기는 유저이다. 우성이는 항상 친구가 많기 때문에 개인전 보다는 팀전을 즐겨 한다. 게임의 종류와 플레이어들의 도착시간이 주어졌을 때, 어느 팀이 이겼는지를 계산하는 프로그램을 만들어 보자. 카트라이더는 아이템전과 스피드전이 있다. 팀은 레드 팀과 블루 팀이 있으며, 문제 편의상 항상 4:4 게임만 진행되었다고 가정한다. 아이템전은 1등으로 들어온 사람이 속한 팀이 승리한다. 스피드전은 등수별로 점수를 합산 nypc.github.io 코드 더보기 #include #include #..
문제풀이/기타 문제 2019.07.01 Plorence더미다(Themida) 3.0 정식 출시
테마는 총 4개.
소프트웨어 2019.06.25 2 PlorenceC언어의 기본적인 강좌?를 마치며..
중간에 글을 정리하는 방법도 여러 번 바꿨는데, 그냥 지금이 제일 무난한 듯 싶습니다. 하다가 안하다가 해서 긴 시간이 걸렸지만 C++에서는 꾸준히 올리도록 하겠습니다. register 키워드 같은 건 안썼지만 레퍼런스 참고하셔도 충분합니다. C99부터 많이 생겨났지만 어차피 전 C++을 쓰기에 안올릴겁니다. https://en.cppreference.com/w/c/keyword C keywords - cppreference.com This is a list of reserved keywords in C. Since they are used by the language, these keywords are not available for re-definition. The most common keyword..
프로그래밍/C 2019.05.29 PlorenceC 공용체(Union)
공용체(Union Type) 구조체는 struct라는 키워드를 사용해서 정의하는 반면, 공용체는 union이라는 키워드를 사용해서 정의합니다. 유니온이라고 읽습니다. 공용체는 일반적으로 잘 쓰이지 않습니다. 정의와 선언 union uPoint { int xpos; int ypos; }; 정의에서 구조체와 차이점이라면 키워드 struct 대신에 union을 사용합니다. 그 외에는 동일합니다. 변수 선언할때는 struct대신에 union 키워드를 쓰면 됩니다. 구조체와 차이점 각각의 변수가 메모리 공간에 할당되는 방식과 접근의 결과에는 많은 차이가 있습니다. struct sPoint { int xpos; int ypos; }; union uPoint { int xpos; int ypos; }; 위의 구조체와..
프로그래밍/C 2019.05.29 Plorence조건부 컴파일(Conditional Compilation)을 위한 매크로
조건부 컴파일 매크로 조건부 컴파일 매크로는 특정 조건에 따라 소스코드의 일부를 삽입하거나 삭제할 수 있도록 디자인된 지시자입니다 총 다섯 가지가 있습니다. #if... #endif : 참이라면 #ifdef... #endif : 정의되었다면 #ifndef... #endif : 정의되지 않았다면 #else의 삽입 (#if,#ifdef,#ifndef에 해당) : #if(또는#ifdef,#ifndef)에서 아니라면 #elif의 삽입 (#if에만 해당) : else if와 같은것.(앞 조건문이 참이 아니라면) 4,5번은 1,2,3번의 중간에 들어간다는 공통점이 있고 1,2,3번은 끝이 #endif라는 점입니다. #if... #endif #include #define one 1 #define zero 0 int ..
프로그래밍/C 2019.05.29 PlorenceC 선행처리기와 매크로
선행처리기 선행처리란 컴파일 이전의 처리를 의미합니다. 선행처리기는 삽입해 놓은 선행처리 명령문대로 소스코드의 일부를 수정할 뿐인데, 여기서 말하는 수정이란 단순 치환의 형태가 대부분입니다. 전처리기라고 부르기도 합니다. #define, enum이 이에 해당합니다. 컴파일의 순서는 소스파일 >선행처리기 > 선행처리 거친 소스파일 > 컴파일러 > 오브젝트 파일 > 링커 > 실행파일(exe) 순입니다. 자주 사용해왔던 #include 선언도 #문자로 시작하는 선행처리 명령문입니다. 의미는 "stdio.h 파일의 내용을 이곳에 가져다 놓으세요" 선행처리 명령문,#define 형식이 두 가지가 있습니다. #define Object-like macro 형식 #define one 1 위 코드의 의미는 "one을 1..
프로그래밍/C 2019.05.26 PlorenceC 메모리 구조와 동적 할당
C언어 메모리 구조 메모리 구조는 4개의 영역으로 나뉘어 있습니다. 메모리 공간을 나눠서 유사한 성향의 데이터를 묶어서 저장을하면 관리가 용이해지고 메모리의 접근 속도가 향상됩니다. 각 영역 코드 영역(Code Area) 코드 영역은 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간입니다. 따라서 CPU는 코드영역에 저장된 명령문들을 하나씩 가져가서 실행을 합니다. 데이터 영역(Data Area) 데이터 영역에는 전역변수와 static으로 선언되는 static변수가 할당됩니다. 즉, 이 영역에 할당되는 변수들은 프로그램의 시작과 동시에 메모리 공간에 할당되어 프로그램 종료 시까지 남아있게 된다는 특징이 있습니다. 스택 영역(Stack Area) 스택 영역에는 지역변수와 매개변수가 할당됩니다. 이..
프로그래밍/C 2019.05.25 PlorenceC 열거형(Enumerated Type)
열거형(Enumerated Type) 열거형은 숫자보다 문자가 더 친근한 우리들을 위해 존재합니다. 마치 인터넷 URL 입력해서 접속할 때 아이피 대신 도메인을 입력해서 들어가듯 C언어에서도 같은 이유로 존재합니다. 정의와 선언 열거형으로 Result이라는 이름의 자료형을 정의한다는 것은 다음의 의미를 지닙니다. Result형 변수에 저장이 가능한 정수 값들을 결정하겠다 enum Result { Success=1, Fail=2, }; 이렇게 됩니다. Success = 1는 Success를 정수 1을 의미하는 상수로 정의합니다. 그리고 이 값은 Result형 변수에 저장이 가능합니다. 정의할 때 결정되는 값 정의할 때 결정되는 값은 아무것도 쓰지 않으면 0부터 시작됩니다. 또한 첫번째 값에 따라 나머지 값..
프로그래밍/C 2019.05.24 Plorencetypedef과 구조체
typedef typedef 선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것입니다. 예를 들면 typedef int INT 라고 선언을 하게 되면, 자료형의 이름 int에 INT라는 이름을 추가로 붙여줍니다. 결국엔 int num1; INT num2; 동일한 자료형을 선언하게 됩니다. typedef 선언에 있어서 새로운 이름의 부여는 가장 마지막에 등장하는 단어를 중심으로 이뤄집니다. 즉 typedef name1 name2 name3라고 선언하면 name3가 'name1 name2'에 부여된 새로운 이름이 된 것입니다. 이때 name1, name2는 어떠한 의미가 있어야 합니다.(안 그러면 컴파일 에러가 발생함.) 당연한 거지만, typedef의 유효 범위 내에서만 사용이 가능합니다. #i..
프로그래밍/C 2019.05.23 Plorence"C++ 기초 플러스 6판" 문법을 다 보면서..
책 두께 만큼 배울 것도 엄청납니다. 꾸준히 한게 아니라서 1년정도 걸렸습니다. 그때동안 Evernote에 요약정리하면서.. 75개가 쌓였습니다. 아쉬웠던 점은 책에 이상하게 써놓았던게 많았습니다. 생각보다.. 잘못된 내용은 딱 1개였던 것 같은데..그거 마저 기억이 잘 안납니다. 이게 몇 인쇄본인지는 모르겠는데, 정오표에도 없는게 꽤나 있었습니다.
프로그래밍/C++ 2019.05.23 2 PlorenceC 구조체
구조체(structure) 구조체는 하나 이상의 변수(포인터 변수와 배열 포함)를 묶어서 새로운 자료형을 정의하는 도구입니다. 구조체를 기반으로 우리는 새로운 자료형을 정의할 수 있습니다. 만약 프로그램상에서 마우스의 좌표 정보를 저장하고 관리해야 한다고 가정하면 다음과 같이 두 개의 변수를 선언해야 합니다. int xpos; //마우스 x 좌표 int ypos; //마우스 y 좌표 그런데 이 둘은 항상 함께하기 마련입니다. 이 둘은 서로 독립된 정보를 표현하는것이 아니라, 마우스의 위치라는 하나의 정보를 표현하기 때문입니다. struct point { int xpos; int ypos; } point 라는 이름의 구조체를 정의한 결과 이때 point 라는 이름이 int나 double과 같은 자료형의 이..
프로그래밍/C 2019.05.21 Plorence