디버깅을 위해서 cout을 썼다가 나중에 cout을 모두 지우거나 주석처리해야하는 불편함이 있는데 이것을 해소하는 방법. 결론 부터 말하면 가장 추천 방법은 clog를 쓰고, clog를 비활성화(?) 시키는 방법을 쓴다. 1.printf()쓰기. 형식이 바뀌어서 매우 귀찮다. 2. cout을 다른 이름으로 바꿔쓰기 다른이름으로 바꿔서 썼다가, 나중에 얘네들만 한꺼번에 검색해서 주석처리하거나 없애는 식으로 할수있다. (2-1)#define dout cout (2-2)ostream &dout = cout; 두가지 모두 cout을 다른 이름으로 바꾸어 쓸수 있게 해주는 방법이다. dout
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net /* 알고리즘을 한줄로 요약하면 이렇다. "1부터 N까지 고르기(이미 고른 것 제외하고)"를 길이 M이 될때까지 반복. M에 도달시 출력하고 리턴. 예를 들어 N..
Keycode.info라는 좋은 사이트가 있어서 소개할겸 올린다. 키보드로 직접 키를 누르면, 누른 키의 키코드와 실제 키 이름이 나온다. 이런 사이트가 있긴한데 여기가 가장 보기가 좋은것 같다. 키보드모양에 하이라이트만 되는 사이트도 있지만, 여기서는 키코드가 같이 나오기 때문에 좋다. 한/영키 한자키, 그리고 fn과 함께 눌러서 작동하는 볼륨 업 다운 키(미디어키) 같은것도 다 표시가 된다. (다만 아두이노에서 Keyboard.h에 포함된 키보드 함수로 미디어키를 입력하려니 되지 않는다. 137이 넘으면 안되도록 되어있어서 아두이노 core파일을 수정하면 된다는데, 나중에 시간나면 다시 해보려고 한다.) 아스키코드를 16진수로 많이 표현하지만, 여기서는 10진수로 나타나기 때문에 코딩시에 char문자..
MS Visual Studio 디버깅 기능을 처음 써본다. 사실 지금까지는 cout이나 printf로 콘솔에 값을 출력하는 방법으로만 디버깅을 해왔다. 필요없는 출력구문을 나중에 지우는것도 일이고, 확인하려는 값이 많아질수록 복잡해져서 문제가 된다. 일단 꼭 필요한 기능이라고 생각되는것부터 찾아보고 복습할겸 일단 블로그에 올린다. (내용이 수정/보완 될 수 있다) 빨간점 만들기. 먼저 코드 옆에 클릭하면 🔴빨간점이 생긴다. 이 점을 중단점이라고 하는데 작동하던 프로그램을 강제로 중단하고 상태를 확인하고자 하는것이다. 디버깅 모드로 실행시, 이부분에서 실행이 일시적으로 멈추어서, 그 시점의 변수 상태를 볼수가 있다. 중단점에서 멈췄을때 할수 있는 기본적인 일은 크게 두가지로 볼수 있다. (1)변수를 확인하..
문제 상황 : Mac에서 파워포인트(Microsoft PowerPoint)를 쓰고 있다. 그런데 파워포인트를 켤 때마다 같은 자동 복구 파일이 자꾸 켜진다. 저장하지 않고 껐는데도, 파워포인트를 재실행하면 다시 켜지는 현상.... [자동저장]프레젠테이션1_autorecovery_autorecovery_autorecovery…. 심지어 자동저장된 파일이 또 자동저장되어서 _autorecovery가 붙은 이름으로 같은 문서가 이중 삼중으로 생겨나서 정말 짜증나는 현상이다. 해결 : 구글링을 해보니, 자동저장 파일이 저장된 경로에 들어가서 파일을 삭제하면된다고 한다. /Users//Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences/Aut..
이번학기에 openCV를 활용하는 강의를 수강하게 되어서, 맥북에서 개발 환경을 설정했다. 대부분의 프로그래밍 수업이 윈도우를 기준으로 진행되고 있다. 실습실 컴퓨터도 다 윈도우가 깔려있고 Visual Studio를 사용하고 있다. 이런 상황에서 개인적으로 맥을 쓰다보면, 개발환경 설정하는것도 스스로 해결해야 하고, 특정상황에서 갑자기 뭐가 안되는 경우가 있는데, 누군가 해결해주기 보다는 "너가 윈도우를 안써서 그래" 라는 대답을 듣기 마련이다. 바로바로 해결이 안되면 강의를 못따라가는 경우가 생길수도 있다. 그래서 왠만하면 윈도우 노트북을 따로 들고 다니면서 쓰곤했는데 이번엔 왠지 맥으로 셋팅을 혼자서 해도 따라가는데 문제가 없을것 같아서 시도를 해보았다. 우여곡절이 있었지만 아무튼 성공했다. 지금은 ..
프로그래밍을 과정에서 변수 간의 연산은 기본 중의 기본이지만 특히, 나눗셈 연산은 다른 사칙연산과 달리 결과에 대한 이해가 조금 더 필요한 부분이 있습니다. 이 글에서는 정수형 변수를 이용한 나눗셈 연산이 어떻게 작동하는지 살펴보겠습니다. C언어에서의 정수형 나눗셈 연산 C언어에서 정수형 변수 간의 나눗셈은 가능합니다. 그 결과는 정수형 나눗셈의 특성 상 소수점 이하를 버린 몫을 반환합니다. 예를 들어, 다음과 같은 코드가 있다고 가정해보죠. int a=5; int b=3; int c=a/b; printf("%d", c); 이 코드는 컴파일에 아무런 문제가 없으며, c에 저장되는 값은 1이 됩니다. 왜냐하면 5를 3으로 나눈 몫은 1.666...이지만, 정수형 변수에 저장될 때 소수점 이하가 버려지기 때..
Neopixel은 adafruit에서 만든 ws2812 LED 부품이다. 이번 포스트는 아두이노로 neopixel을 간단하게 작동시켜보는 예제이다. 나중에 내가 했던거 찾아보는게 구글링하는거보다 편할때가 있어서 간단히 테스트 해보고 정리한 글이다. 1. 라이브러리 포함하기. Neopixel 라이브러리를 먼저 포함시켜줘야한다. 아두이노 라이브러리 매니저에서 설치할수 있다. 설치 후에 #include 를 코드에 넣어준다. 2. 부품 연결 LED 갯수가 많거나, 아두이노에 전력이 많이 들어가는 모터같은게 들어간다면 외부 파워를 연결해줘야 할수도있다. 또, 부품을 보호하기 위해서 저항이나 콘덴서를 연결하기도 하는데 몇개 안되고 해서 그냥 이렇게 연결했다. 아래 표와 같이 Neopixel과 Arduino를 연결하..
GEM이란.gem은 프로그램 언어인 루비에서 쓰이는 라이브러리 패키지이다.커맨드라인에서 인스톨 명령을 내려 쉽게 설치할수 있다. Gem Setgem을 모아놓은것을 gemset이라고 한다.한 컴퓨터안에도 루비 버전마다 혹은 프로젝트마다 필요한 gem이 다를수 있기때문에 있는 개념이다. Gem의 확인, 설치 현재 설치되어 있는 gem의 종류를 아래와 같이 입력하여 확인할수있다. $ gem list 또 rvm이 설치 되어있다면 다음 명령어를 통해 현재 설치된 gemset의 종류를 알수있다. $ rvm gemset list 다음과같이 gem을 설치할수 있다. $ rvm gem install [gem이름] command line에 대한 더 자세한 정보는 https://guides.rubygems.org/comma..
RVM?Ruby Version Manager을 줄여 RVM이라 한다. 여러 버전의 루비를 깔때, 편리하게 관리하는 프로그램이다.이걸 쓰는 이유는 뭘까? 개발을 할 때에 프로젝트마다 사용되는 라이브러리의 종류와 버전이 다르기때문에이들을 따로 관리할 필요가 있다. 루비에서 쓰는 라이브러리 패키지를 gem이라고 하며, 여러가지 gem을 모아놓은것을 gemset이라고한다.RVM은 프로젝트마다 gemset을 따로 가질수 있도록 관리가 가능하도록 해주는 툴이다. rvm.io에 가면 이렇게 나와있다. RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from inter..