728x90
728x90

2018/02 18

Arduino] 아두이노의 입출력 함수, 시간함수 정리

Digital I/O void pinMode(uint8_t pin, uint8_t mode)pin : 설정하고자 하는 핀 번호mode : INPUT, OUTPUT, INPUT_PULLUP 중 하나반환값 : 없음 void digitalWrite(uint8_t pin, uint8_t value)pin : 핀 번호value : HIGH 또는 LOW반환값 : 없음 int digitalRead(uint8_t pin)pin : 핀 번호반환값 : HIGH 또는 LOW Analog I/O void analogReference(uint8_t type)type : DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL 중 한 가지반환값 : 없음 int analogRead(uint..

깃허브(GitHub) fatal: HttpRequestException encountered

난 데 없이 깃이 문제를 일으켰다. 'fatal: HttpRequestException encountered.'라는 메세지를 띄우면서 Visual Studio와, Git Bash에서 제대로 푸시되지 않는 문제가 생겼다. 이런 메세지는 처음이지만, 이렇게 깃이 정상적으로 작동하지 않는 경우는 종종 겪어봐서 나름의 해결책을 가지고 있었다. Visual Studio에서 GitHub에 문제가 발생하는 경우는 GitHub에서 공식적으로 제공하는 확장툴을 업데이트를 해주면 문제가 해결되곤 했는데, 이번엔 아니었다. 그 결과 온갖 오류를 내뿜으면서 수동으로 SSH연결을 수동으로 계속 해주면서 푸시(Push) 작업을 수행하긴 했지만, 이대로 방치할 수는 없는 상황이라 여러 방면으로 알아봤다. 이럴 땐 구글링을 해야 하..

백준] 10158 - 개미(KOI 2014 지역본선)

시간 제한 : 1초메모리 제한 : 256MB 입력첫줄에는 w와 h가 공백을 사이에 두고 주어진다. 그 다음 줄에는 초기 위치의 좌표값 p와 q가 공백을 사이에 두고 주어진다. 3번째 줄에는 개미가 움직일 시간 t가 주어진다. 출력출력은 t 시간 후에 개미의 위치 좌표 (x,y)의 값 x와 y를 공백을 사이에 두고 출력한다. 소스코드 #include using namespace std; int main(void) { int w, h, curx, cury, dx, dy, t; cin >> w >> h >> curx >> cury >> t; dx = dy = 1; for (int i = 0; i w || curx + dx < 0) dx = -dx; if (cu..

백준] 2631 - 줄세우기(KOI 2001)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에는 아이들의 수 N이 주어진다. 둘째 줄부터는 1부터 N까지의 숫자가 한 줄에 하나씩 주어진다. N은 2 이상 200 이하의 정수이다. 출력첫째 줄에는 번호 순서대로 줄을 세우는데 옮겨지는 아이들의 최소 수를 출력한다. 소스코드 #include using namespace std; int main(void) { int n, max, arr[201] = { 0, }, dp[201] = { 0, }; cin >> n; for (int i = 1; i > arr[i]; for (int i = 1; i

C,C++] Visual Studio와 컴파일러

요즘 대학교 전산실 컴퓨터 성능이 기본적으로 멀티코어에 8GB의 램을 깔고 가는 경우가 많다 보니, 통합개발도구(IDE)로 Visual Studio 커뮤니티를 사용하는 경우가 많다. 그 언어 자체의 특성과 프로그래밍에 대해서 다루기 때문에 컴퓨팅 성능이 문제가 되지 않는다면 Visual Studio가 제공하는 여러 환경만큼 입문하는 사람에게 좋은 것은 없다. 이렇게 입문하고서 한창 프로그래밍을 즐기다가 자료구조, 알고리즘 등을 접하고, 좀 더 자신의 실력을 향상시키기 위해서 백준 온라인 저지(BOJ)나, 알고스팟 등의 사이트에서 제공하는 문제를 풀다보면 Visual Studio에서는 정상적으로 작동함에도 불구하고 채점 시 컴파일 에러를 띄우는 문제를 접하게 된다. 예를 들자면, strlen()을 사용하는..

C++] 공백을 포함하는 문자열 여러 줄 입력 받기

문자열 처리 문제는 대부분 공백을 포함하는 한 문장을 다루는 문제가 많다.간혹 그 이상의 문장을 처리해야 하는 문자열 처리 문제가 주어지는 경우가 있는데 이 때 공백을 포함하는 문장을 EOF가 입력될 때까지 문장을 입력 받고 싶다면 아래처럼 처리하면 된다. vector s; string str; while (getline(cin, str)) s.push_back(str); 문장의 수가 예상 가능하다면 동적 배열 vector가 아닌 정적 배열을 선언해도 좋다.

백준] 8979 - 올림픽(KOI 2013)

시간 제한 : 1초메모리 제한 : 128MB 입력입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수가 빈칸을 사이에 두고 주어진다. 전체 메달 수의 총합은 1,000,000 이하이다. 출력출력은 단 한 줄이며, 입력받은 국가 K의 등수를 하나의 정수로 출력한다. 등수는 반드시 문제에서 정의된 방식을 따라야 한다. 소스코드 #include #include using namespace std; struct nation { int id, gold, silver, bronze, ran..

C, C++] 메모리 영역(Code, Data, Stack, Heap)

프로그램 실행 시 할당되는 메모리 영역은 Code, Data, Stack, Heap, 네 가지로 분류할 수 있는데, 이에 대한 이해가 아예 없는 상태에서도 자연스럽게 Stack, Heap에 대한 감이 잡히게 된다. 확실히 이들에 대해서 조금 정리해두는 것이 좋을 것 같아 글을 끄적여 놓는다. Code작성한 코드라고 보면 되며 프로그램 종료 시점까지 메모리에 적재됨. Data전역 변수, static 변수 등이 저장되는 영역으로 이 역시 프로그램 종료 시점까지 메모리에 적재됨. Stack자료구조를 접한 사람들이 아는 그 스택의 성격(LIFO)을 가지고 있음.함수 호출, 지역 변수, 매개 변수, 반환 값 등을 저장하며, 함수 종료 시점에 시스템에 반환됨.프로그램에서 사용하는 임시 메모리 영역으로, 컴파일 시점..

C,C++] malloc과 new의 차이점

C를 배우고 C++로 넘어와서 동적할당을 하다 보면, 아주 자연스럽게 C++에서는 new만 사용하게 된다. 모든 걸 신경 써야 하는 malloc과는 다르게 타입 지정도 필요 없고 할당해버리면 끝인 new만 사용하면 그만이라고 생각하기에는 너무 막연하고 쉽게 넘어가는 것 같아 이 둘의 차이점에 대해서 정리해두고자 한다. malloc은 라이브러리에서 제공하는 함수, new는 연산자다.malloc은 함수로, 원하는 만큼의 메모리를 sizeof()를 이용해 바이트 단위로 할당해 void* 형식으로 반환한다. 그렇기 때문에 적합한 형식으로 지정해주어야 하는 캐스팅 과정이 필요하다.new는, 함수가 아니라 연산자로 메모리의 사이즈와 형식을 지정해 해당 타입의 포인터를 반환하므로, 형식을 지정해주지 않아도 되기 때문..

728x90