728x90

프로그래밍 410

Jungol] 1394 : 양팔저울

문제 주소 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=670&sca=4040 나는 이 문제를 수학적으로 생각해서 풀이를 진행했다. 그래서 문제 풀이에 아쉬움이 남는다.(이게 모범 답안일수도 있겠지만, 또 다른 답안이 있으리라..) 좀 더 특별한 방법이 있다면 차후에 다시 생각하여 올려보도록 하겠다. 나는 이 문제를 풀면서 토너먼트 방식을 사용했다. 물건이 몇개가 되더라도 2개씩만 비교할 수 있다는 양팔저울의 특성 상, N(N>=2)개의 물건 중 가장 질량이 큰 것이 무엇인지 정확히 알아내기 위한 최소한의 시행 횟수는 N-1번이면 된다. 가장 무거운 물건을 찾는 것은 정밀한 측정이 필요가 없기 때문에, A가 무거운지 B가 무거운지에 대한 정..

C#] 널 관련 연산자

널 접합 연산자(널 병합 연산자) : ??null-coalescing operator 좌측 피연산자가 null이 아니면, 그 피연산자에 의해 평가되고,좌측 피연산자가 null이면 우측 피연산자로 평가됨좌변이 null이 아닌 경우에는 우변은 절대 평가하지 않음.이 연산자는 nullable 형식과도 함께 사용 가능. 연산자는 다음 예처럼 변수에 default를 배정하는 데 사용할 수 있음. 12string s1 = null;string s2 = s1 ?? "우변" ; // s2는 "우변"으로 평가cs 널 조건 연산자 : ?.null-conditional operator C# 6.0에 새로 추가된 연산자로, 'Elvis 연산자'로도 불림.해당 연산자를 이용하면 표준적인 마침표 연산자를 이용해 메서드를 호출하거..

C#] 정수 Overflow와 checked, unchecked 연산자

실행 시점에서 정수 형식에 대한 산술 연산이 형식에 담을 수 없을 정도로 크거나 작을 수 있음.이 경우 overflow가 발생하는데, 이 경우, 어떠한 예외도 던져지지 않고,연산의 결과는 끝에서 끝으로 순환(wraparound)됨. 더 큰 정수 형식으로 연산을 수행한 후, 여분의 유효 자리 비트들을 폐기한 것과 같은 결과가 나오는 것이 대표적인 예 123int a = int.Minvalue;a--;Console.WirteLine (a == int.MaxValue);cs 이러한 경우의 예외 처리를 해주고 싶을 때 checked 연산자를 이용하면 예외 처리가 가능하다. checked 연산자 / unchecked 연산자표현식이나 문장에 checked 연산자를 지정하면, 실행시점에서 해당 형식의 산술 한계를 넘..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장

2학년 당시, 과제로 제출했던 내용이다.생능출판에서 나온 'C언어로 쉽게 풀어쓴 자료구조'라는 책의9장 정렬 파트에 있었던 이론적인 문제들을 풀었는데, 그 때 풀었던 자료들이 남아 올린다.골치 아파하는 대학생들을 위해 조금의 참고자료가 되었으면 하지만,이를 그대로 복사 붙여넣기 하는 것은 자기 실력 발전에 전혀 도움되지 않는다는 사실만을 알았으면 좋겠다.

API] SetWindowsHookExA 함수

SetWindowsHookExA function 123456HHOOK WINAPI SetWindowsHookEx( _In_ int idHook, _In_ HOOKPROC lpfn, _In_ HINSTANCE hMod, _In_ DWORD dwThreadId);cs user32.dll에 있는 해당 함수를 통해 훅을 설정할 수 있음.대표적인 함수로, MSDN에서 해당 함수의 구조와 사용법에 대해서 알 수 있음. 첫번째 인자, 훅 타입으로 어떤 종류의 메세지를 후킹할 것인지 선택하는 것두번째 인자, Hook Procedure세번째 인자, 후킹할 스레드가 속해 있는 DLL의 핸들네번째 인자, 후킹할 스레드 아이디 첫번째 인자에 들어갈 훅 타입은 구글링으로 체크 가능두번째 인자로 사용할 훅 프로시저, 파이썬의 경..

Python] 클래스 기초

파이썬에서 클래스의 기본 선언 구조 123456class Example: def __init__(self,param): def function(param): class classExample(Example): def func(param):cs 클래스는 예약어 class 뒤에 클래스명을 지정해 선언함 class Example: 생성자는 __init__() 함수로, 클래스 생성 시 호출되며,생성자는 클래스 자신을 가리키는 인자 self가 반드시 들어가야 함.특별한 초기화 작업이 필요 없는 경우 생략 가능. def __init__(self, param): 클래스 내부에는 함수 선언 가능. def function(param): 다른 클래스를 상속하려면 클래스 선언 시, 인자로 상속받을 클래스명을 넣어줌. cla..

DataStructure] 퀵정렬 정렬 패스마다 high, low 출력

대학교 때 과제로 제출했던 기억이 있다.퀵 정렬을 진행하면서 정렬의 매 패스마다 high, low를 출력하도록 하는 거였다.혹여 자료구조 과제를 하면서 골치 아파할 대학생들을 위해 올려놓는다.생능출판에서 나온 'C언어로 쉽게 풀어쓴 자료 구조(개정판)'라는 책이다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include #include #define SWAP(a,b) {int t; t=a; a=b; b=t;}// 배열의 크기int n;void PrintSit(int list[], int high, ..

JavaScript] 내장 객체

### JavaScript 내장 객체 - JavaScript 자체적으로 제공- Object : 최상위 객체, 모든 객체는 이를 기본으로 하여 생성- Number : 숫자 표현하는 객체- String : 문자열 표현하는 객체- 메서드 체이닝 : 메서드를 연속적으로 사용하는 것 ## Object - JavaScript의 가장 기본적인 내장 객체로, 최상위 객체- Object() 생성자 함수에 의해 생성된 인스턴스- 모든 기본 내장 객체는 Object 객체를 기본으로 만들어짐- 생성var object{};var object = new Object(); - 메서드constructor() : 객체의 생성자 함수를 나타냄hasOwnProperty(V) : 문자열 매개 변수로 전달된 속성이 객체에 있는지 확인isPr..

TPWord Ver0.5

영어 공부를 하고 있는 와중에 문득 떠오른 생각이 있다.나는 영어 단어를 앉아서 따로 외우는 걸 좋아하지도 않지만,하루 24시간 중에 절반 가까이(혹은 그 이상)를 컴퓨터 앞에 앉아 있는데,중간중간 비는 시간에(혹은 정신이 혼미해질 때..),팝업이 뜨면서 영단어 뜻을 물어보는 건 어떨까?(물론 그게 크게 도움되진 않겠으나... 형식적으로나마?)그래서 만들기 시작했다. 이게 만들고 나니까 고문 기계가 따로 없다.예를 들어 롤 같은 걸 하고 있을 때 5분마다 이게 뜬다고 생각을 하니,두 가지 선택을 하게 되는데,게임을 꺼버리거나, 욕을 하면서 단어를 그냥 틀려버리거나..아무튼 이름은 거창하게 TPWord지만,'고문기계, 사람 미치게 만드는 단어 암기 프로그램'정도로 보는 게 맞을 것이다. 구현된 기능 : 단..

Arduino] 아두이노 언어 구조, 변수, 함수

- 아두이노 언어의 구조 구조 종류 내용 제어 구조 (Control Structure) if, if…else, for, switch case, while, do…while, break, continue, return, goto 문법(Syntax) ;, {}, //, #define, #include 산술 연산자 (Arithmetic Operators) =, +, -, *, /, % 비교 연산자 (Comparison Operators) ==, !=, , = 불 연산자 (Boolean Operators) &&, ||, ! 포인터 접근 연산자 (Pointer Access Operators) *, & 비트 연산자 (Bitwise Operators) &, |, ^, ~, 복합 연산자 (Compound Operato..

728x90