15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net /* 알고리즘을 한줄로 요약하면 이렇다. "1부터 N까지 고르기(이미 고른 것 제외하고)"를 길이 M이 될때까지 반복. M에 도달시 출력하고 리턴. 예를 들어 N..
[문제 상황] Cmake에서 에러: NO CMAKE_XXX_COMPILER could be found [해결] sudo xcode-select --reset Cmake로 opencv 소스코드 빌드 시도하려는데 NO CMAKE_XXX_COMPILER could be found 이라는 에러가 나와서 진행할수가 없었다. (참고로 Cmake를 step by step대로 따라하면 되는거 외에는 이전에 써본적이 없었다...) 구글링해보니, 윈도우에서 같은 오류 실행시, 시스템 변수로 C /C++ 컵파일러를 설정하여 해결한다고 많이 나와있는데 osx에서는 해본 사람이 훨씬 적은것같다. 아무튼 이문제는 C/C++컴파일러를 잘 설치하거나, 환경변수를 잘 설정하면 되는 문제인데 맥에서 환경변수는 어디서찾지??? 하다가 분..
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...이지만, 정수형 변수에 저장될 때 소수점 이하가 버려지기 때..
함수를 끌어 올려? MDN Javascript 문서를 보다가 보니 함수를(혹은 클래스)를 끌어올린다는 표현이 가끔씩 나온다. 대체 뭘 끌어올린다는 건지 이해가 되지않아 몇개의 글을더 찾아 읽어보다가Hoisting이라는 단어를 끌어올린다고 번역하였음을 알 수 있었다.영어 발음 그대로 '호이스팅'이라고 표현된 부분도 있었다. '끌어올리다'라는 용어 자체가 흔히 쓰이는 말인지는 모르겠지만그 단어 자체에 대한 정의는 따로 찾을수 가 없어서 의미를 알기가 혼란스러운 점이 있긴 하다.MDN에 Hoisting에 대한 페이지가 따로 존재한다. '끌어올리다'라는 표현이 잘 이해가 안되었는데 함수가 선언된 부분을 코드의 맨 위로 끌어올린다는 것에서 나온 표현으로 볼 수 있을것같다. 호이스팅(hoisting)에 대해서 몇가..
Neopixel은 adafruit에서 만든 ws2812 LED 부품이다. 이번 포스트는 아두이노로 neopixel을 간단하게 작동시켜보는 예제이다. 나중에 내가 했던거 찾아보는게 구글링하는거보다 편할때가 있어서 간단히 테스트 해보고 정리한 글이다. 1. 라이브러리 포함하기. Neopixel 라이브러리를 먼저 포함시켜줘야한다. 아두이노 라이브러리 매니저에서 설치할수 있다. 설치 후에 #include 를 코드에 넣어준다. 2. 부품 연결 LED 갯수가 많거나, 아두이노에 전력이 많이 들어가는 모터같은게 들어간다면 외부 파워를 연결해줘야 할수도있다. 또, 부품을 보호하기 위해서 저항이나 콘덴서를 연결하기도 하는데 몇개 안되고 해서 그냥 이렇게 연결했다. 아래 표와 같이 Neopixel과 Arduino를 연결하..