일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바
- 돈
- 알고리즘트레이닝
- 독서
- C++
- 서평
- 주식
- 책을알려주는남자
- 책알남
- 프로그래머스 알고리즘 공부
- 자바스크립트
- 지혜를가진흑곰
- JavaScript
- 알고리즘공부
- algorithmtraining
- 성분
- 알고리즘 공부
- 재테크
- 화장품
- algorithmTest
- 투자
- C
- Java
- 다독
- 프로그래밍언어
- 채권
- 백준알고리즘
- 경제
- 독후감
- algorithmStudy
- Today
- Total
목록[Snow-ball]프로그래밍(컴퓨터) (331)
탁월함은 어떻게 나오는가?
HTTP(HyperText Transfer Protocol) HTTP는 웹상에서 클라이언트와 서버 간에 요청/응답으로 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. HTTP는 웹에서 이루어지는 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. 클라이언트가 HTTP 프로토콜을 통해 서버에게 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송한다. 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched) 하위 문서들로 재구성 된다. 클라이언트와 서버들은 개별적인 메시지 교환에 의해 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 ..
[개념과 원리] 동전 거스름돈(coin change) 문제는 가게에서 고객에게 돌려줄 거스름돈이 있을 때 고객이 받을 동전의 개수를 최소로 하여 거스름돈을 돌려주는 방법을 찾는 문제로, 동전 문제 또는 거스름돈 문제라고 한다. 사용 가능한 동전은 500원, 100원, 50원, 10원의 네 종류가 있다고 가정하자. 욕심쟁이 방법으로 동전 거스름돈 문제를 해결하는 가장 간단하고 효율적인 방법은 거스름돈의 액수를 초과하지 않는 조건하에서 단순히 액면가가 큰 동전부터 '욕심을 부려서' 최대한 사용해서 거스름돈을 만드는 것이다. [코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include using namespace std; ..
자료구조의 정의 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 쉽게말해 자료(Data)의 집합을 의미하며 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료 구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. 자료란? '자료'는 현실 세계에서 관찰이나 측정을 통해서 수집된 값(value)이나 사실(fact)이다. 일반적으로 눈으로 보거나 귀로 듣거나 코로 냄새를 맡거나 해서 얻게 ..
문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 NxN 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)x(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3^k이며, 이때 1
프로젝트 생성 방법 및 Hello Wolrd 출력 방법 1) 인텔리제이(intellij)를 설치 후 실행을 하면 아래처럼 시작된다. [New Project]를 클릭하면 새로운 프로젝트 생성, [Open or Import]를 클릭하면 기존의 프로젝트를 열 수 있다. 1-1) 만약에 기존에 사용하고 있는경우 밑에처럼 [File] >[New] > [Project] 로 생성할 수 있다. 2) [Java] 선택 후 > Project SDK의 자버 버전을 확인 후 Next 3) 바로 Next 클릭 4) [Project name]과 [Project location]을 입력해야한다. location에 원하는 위치를 설정은 [...]버튼을 클릭해서 설정 후 뒤에 [\ 또는 | (backsopace 밑에)] 를 누르고 프..
for문에서 ++i와 i++의 차이는 속도이다. 내부 operator 로직을 보면 i++ 연산이 한번 더 연산을 거치게 된다. 물론 요즘 컴파일러와 하드웨어가 워낙 빨라져서 거의 차이가 없지만 ++i가 미세하게 빠르다. 코드로 확인해보자. C계열에서 확인해보면 i++의 경우에 임시 변수를 생성하기 때문이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1) ++i 의 경우 for (int i = 0; i
알고리즘의 시간 복잡도 중에서 자주 접할 수 있는 형태를 정리한 것이다. O(1) : 상수 시간 알고리즘(Constant-time algorithm)의 수행 시간은 입력의 크기에 영향을 받지 않는다. 상수 시간 알고리즘의 예로는 공식을 이용하여 답을 바로 계산해내는 알고리즘이 있다. O(log n) : 로그 시간 알고리즘(Logarithmic algorithm)은 대체로 단계마다 입력의 크기를 절반씩 줄여 나간다. n을 계속 2로 나눠가면서 1이 되도록 하는 데에 필요한 단계 수는 log2 n이고, 따라서 이러한 알고리즘의 수행 시간은 로그 시간이다. 로그의 밑수가 시간 복잡도에 나타나 있찌 않음을 유의하라. O(로그 n) : 제곱근 시간 알고리즘(Square root algorithm)은 O(log n..
문제 수직선 위에 N개의 좌표 X1, X2, ... , XN 이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수에 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 코드 C++ : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include #inc..