728x90

Computer Science 403

깃허브의 선물, 학생 개발자팩

학생 개발자를 위한 깃허브의 선물,학생용 무료 모둠 개발도구, 학생개발자팩 이번에 깃허브에서 학생 개발자팩(Student Developer Pakc)이라는 것을 출시했다.깃허브는 이전부터 교육용 깃허브를 운용하면서 학교에서 무료로 이용할 수 있게 했었는데,이번에는 다른 외부 업체와 함께 하여, 학생 개발자라면 누구나 13개의 유료 서비스를 이용하게 했다.(AWS, 언리얼, 깃허브 private, bitnami, udacity 등... 자세한 내용은 아래 링크 참조) https://education.github.com/pack 13세 이상의 학생은 해당 개발자팩을 학교 e메일 주소를 통한 인증을 통해 이용할 수 있으며,필자가 아는 정보로는 'ac.kr'이 포함된 이메일 주소라면 누구나 가능한 것으로 알고 ..

Jungol] 2499: 저울 (2011년 KOI 초등부)

2011년 한국정보올림피아드(KOI) 초등부 문제 : 저울 이 문제의 답안과 채점은 Jungol이라는 사이트에서 이뤄졌다.(문제 번호 2499 : 저울) 필자는 두 가지 답안을 작성했다.그리디 알고리즘을 통해 최적해를 구하는 방법을 잘못 접근했기 때문인데,최대에서 최소로 최적해를 구성하면서 TLE(시간 초과) 문제가 발생해서 만점을 받지 못했고,최소에서 최대로 최적해를 구성하는 건, TLE 문제를 해결할 수 있었다. 아주 간단한 원리를 까먹고 진행해서... 1안 : TLE 발생 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include using namespace std;int ma..

Algorithm] 그리디 알고리즘(Greedy Algorithm)

Greedy Algorithm(그리디 알고리즘;탐욕 알고리즘) 데이터 간 관계를 고려 않고 수행 과정에서 모든 것들을 욕심 내어최솟값 혹은 최댓값을 가진 데이터를 선택한다.이러한 선택을 근시안적인 선택이라고도 하며이러한 선택으로 그리디 알고리즘은 문제의 최적해를 찾는다. 그리디 알고리즘에서 선택이 이뤄지면 번복하지 않고 다른 것을 취하지 않기 때문에알고리즘 자체는 매우 단순하지만, 제한적인 경우에만 이 알고리즘이 유효하게 사용할 수 있다. 대표적인 예가 동전 거슬러주기(Coin Change)문제이니 이를 토대로 알고리즘에 대해서 알아보자. 현실처럼 500원, 100원, 50원, 10원이 있다고 하자.거스름돈 동전의 수가 가장 적은 최적해를 구하고 싶을 때, 그리디 알고리즘으로 해결할 수 있다.그리디 알고..

API] 다음 우편번호 API 사용하기

필자가 대학을 다니는 동안 데이터베이스 과목을 수강을 했고,그 과목에서는 PHP와 MySQL을 이용해서 자신만의 쇼핑몰을 만드는 것을 목적으로 했다.사용자 모드와 관리자 모드가 존재하는,서버에 올리면 즉시 활용 가능한 수준의 쇼핑몰이 기말 프로젝트로 평가 받았다. 당시 필자가 들었던 수업에서는,우편번호 DB를 직접 서버에 저장해놓고 끌어다 쓰는 방식으로 우편번호 검색 기능을 넣도록 배웠다.요즘 조금만 찾으면 무료 API를 활용할 수 있다는 걸 지난날의 경험을 통해 깨달은 필자한테,MySQL 작업도 이제 좀 다뤄보는 학생들한테 넣기도 불편하고, 넣는 과정도 복잡하고,심지어는 구식의 데이터를(사용하라는 우편번호 DB는 6자리, 현행 우편번호는 5자리) 활용한다는 것이그리 좋은 소리로 들리지 않았다. 찾아보니..

디스플레이 해상도 설정

필자가 처음 접했던 윈도우는 95였던 걸로 기억한다.지금 필자가 사용하고 있는 윈도우는 윈도우 10. 컴퓨터 좀 다룰 줄 알아서 최소한 화면 해상도 정도는 자연스럽게 다룰 줄 알았던 필자의 지인들이갑자기 급변한(?) 디스플레이 옵션에 당황해서 디스플레이 해상도 조절하는데 애를 먹는 것을 본 것도 있고,필자도 윈도우 버전이 바뀔 때마다 어떤 설정(화면 해상도 조절, 개인 정보 기록 등)을변경할 때 헤맸던 경험도 있기 때문에 이 글을 올린다. 사실 그래픽 카드 드라이버가 설치되면 알아서 화면 해상도를 조정해주지만,어떠한 이유로 화면 해상도가 조정된 사람들이 어쩔 줄 몰라 패닉 상태로 빠지거나,윈도우 재설치 직후 화면 해상도를 조정하고 싶을 때 참고할 수 있도록 하기 위함이니,"뭐 이런 걸 다 포스팅하냐?"라..

DataStructure] C++ 이중연결리스트(Double Linked List)

C언어로만 작성했던 것들을 C++로 작성하면서 C++과 자료구조 공부를 동시에 하려고 한다. 지난번에는 C++로 간단한 삽입, 삭제, 출력 기능만 넣은 단일 연결 리스트를 구현했다. 이번에 올리는 글은 이중 연결 리스트(Double Linked List)로, 다음 노드에 대한 포인터만 가지고 있는 단일 연결 리스트와는 달리 이전 노드에 대한 포인터도 가지고 있어, 노드 간의 이동을 양방향으로 할 수 있게 구현하는 자료구조를 뜻한다. #include using namespace std; class Node { friend class List; private: Node* next; Node* prev; int value; Node(Node* n, Node* p, int v) { next = n; prev =..

DataStructure] C++ 연결 리스트(Single Linked List)

2학년 1학기(벌써 작년이다)에 필자는 C언어로 자료구조론을 배운 적이 있다.당시에는 C언어로 모든 것을 작성했었다.자료구조도 복습하고, C++ 연습하는 겸,C++로 자료구조들을 구현하는 시도를 하고 있다.오늘은 그 첫번째 시도로 단일 연결 리스트(혹은 단순 연결 리스트;Single Linked List)를 만들어봤다. head, tail, 중간 삽입이 모두 가능하고,삭제하는 건 head에서만 이뤄지도록 했다.그냥 구현에 초점을 둬서 완벽한 예외처리나, template을 활용하거나 하지는 않았지만,근시일내에 그런 걸 다 집어넣고 다시 한 번 짤 생각이다. (왜 remove만 핫핑크로 하이라이팅되는 거지?...) #include using namespace std; class Node { friend cl..

Javascript] BOM(Browser Object Model)

### Browser Object Model ## Window Object - 브라우저의 내장 객체 중 최상위- 모든 전역 객체, 함수, 변수는 자동적으로 window 객체에 속함- 전역 변수(속성), 전역 함수(메서드)- window를 생략한 형태로 객체와 메서드 사용 가능- 공식 표준은 없으나 주요 브라우저들에서 지원- HTML5에서 브라우저 객체 모델을 공식 명세의 일부로 표준화시킴 # Open() 메서드- 주요 브라우저에서 지원함- 선택사항인 4개의 매개변수- URL : 새롭게 생성할 브라우저 창의 주소, 공백 시, 빈 브라우저 창- name : 새로 생성될 창의 이름 지정, form/anchor의 TARGET 속성을 위한 값- features : 창의 위치, 크기, 모양 지정, 일부 옵션은 IE..

Javascript] 함수

### JavaScript Function - 객체 자료형 중 하나- 하나의 값처럼 취급해 변수에 할당 가능- C, Java와는 달리 함수 명은 선택사항이므로 함수명 없이 생성 가능(익명 함수) ## 익명함수 - function() {}와 같이 함수 형태이나, 이름이 없음- 이름이 없어 변수에 할당해 사용- 중괄호 안에 함수가 처리할 코드 기술- 함수의 재정의가 가능, 호출 시 최종적으로 할당된 함수가 호출됨 var 변수명 = function() {};의 형태 : 함수 표현식 ## 선언적함수 - 일반적으로 함수를 만드는 방식으로 함수명 존재- 익명 함수와 같이 중괄호 안에 함수가 처리할 코드 기술- 함수의 재정의가 가능함, 호출 시 최종적으로 할당된 함수가 호출됨 ## 익명함수 vs 선언적함수 1. 실행..

소스코드 편집기, Notepad++

IDE를 쓸 상황은 아니고, 소스 코드를 편집해야 하고, 가벼운 에디터가 필요할 때 이것을 사용하는 것을 추천한다.필자가 학교에서 배울 때에는 웹 프로그래밍과 DB 프로그래밍에서 이를 메인 에디터로 사용했었다.해당 분야에서 편집기를 메인으로 사용하는 것은 추천하지 않는다.PHP는 그렇다고 해도, HTML, CSS 개발을 할 때 이 편집기를 사용하는 건...필자는 그래서 HTML, CSS, JS는 Visual Studio for Web을 사용하고 PHP의 경우는 이클립스를 사용했다. 나는 더블모니터라서 HTML, CSS를 편집할 때마다 즉각 확인할 수 있다는 사람이라면 상관이 없지만,학생 수준에서 더블 모니터가 아닌 경우를 고려하면 이것이 WYSWYG 에디터가 아니기 때문에,내가 원하는 모양이 맞는지 확인..

728x90