일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 몽고디비 렘
- MongoDB Realm
- 백준
- domain driven develop
- 12761번 돌다리
- 백준 12761번
- 12761 돌다리
- 자바 디자인패턴
- golang
- 트리 순회
- 백준 사이트
- http 완벽가이드
- 고 배열
- 백준 12761
- 자바
- 자바 디자인 패턴
- 하둡
- golang struct
- hadoop
- http 개념
- 우분투
- 파이썬
- 도메인 주도 개발
- go
- 정렬
- ddd
- String 함수
- 도메인 주도 개발 시작하기
- 백준 파이썬
- flask
- Today
- Total
목록분류 전체보기 (211)
개발바닥
문제 N개의 정점과 M개의 간선으로 구성된 가중치가 없는 무방향 그래프에서의 가장 긴 경로에 길이를 출력하면 되는 문제이다. 문제 해결 방법 N개의 노드들을 시작위치로 설정해서 백트래킹으로 탐색해서 가장 긴 거리로 업데이트 해준다. 소스 코드 https://github.com/jokerKwu/BOJ_Algorithm/blob/master/SW%20expert%20Academy/Study_2814.cpp
문제 계산기에서 고장난 버튼과 사용가능한 버튼을 입력 받고 얻고자 하는 숫자를 사용가능한 버튼과 *와 = 버튼으로 만들수 있다면 최소 버튼 누른 횟수를 출력하고 얻고자 하는 숫자를 만들지 못한다면 -1을 출력하면 되는 문제이다. 문제 해결 방법 완전 탐색으로 문제 해결가능하다. 얻고자 하는 숫자를 n으로 부르겠습니다. 이 문제를 해결하기 위한 키포인트는 n에 약수들을 이용해서 문제를 해결하는 것입니다. 먼저 2가지 케이스로 나눌 수 있습니다. 1. 곱하기 연산을 사용 안하고 n을 구할 수 있는 경우 2. 곱하기 연산을 사용해서 n을 구할 수 있는 경우 곱하기 연산을 사용해서 n을 구할 때 bfs를 통해서 약수들 끼리 곱해서 얻으시면 됩니다. 예외 처리가 까다롭지만 예외 처리만 잘 해주시면 됩니다. 소스 ..
문제 해결 방법 입력 받은 방향에 반복문을 돌려서 합칠것들은 합치고 이동할 타일들은 이동을 시킨다. 방향에 따라서 시작하는 위치가 다 다르므로 반복문 시작위치와 끝나는 위치를 각각 설정해준다. (벽에 가까운 타일을 먼저 합쳐야 되므로) 예외 케이스만 주의해서 구현하면 쉽게 해결 가능 소스 코드 https://github.com/jokerKwu/BOJ_Algorithm/blob/master/SW%20expert%20Academy/Study_6109.cpp
문제 https://www.acmicpc.net/problem/9536 문제 해결 방법 HashMap을 사용해서 문제를 해결하였습니다. key 값= 동물 value값 = 동물 울음소리 로 보관하여서 value 값이 존재하지 않다면 출력하면 간단하게 문제를 해결하실 수 있습니다. 자바 사용하면서 몰랐던 사실은 nextInt 사용후 nextLine을 쓰고 싶다면 nextLine()을 한번 사용해주고 사용을 해야지 제대로 동작이 됩니다. 소스 코드 https://github.com/jokerKwu/java/blob/master/JavaStructure/src/BOJ/BOJ_9536.java
자바스크립트를 알아보기에 앞서 기본적인 개념을 알아 보겠습니다. 컴파일 - 소스 코드를 실행하기에 앞서 기계어로 번역하는 행위 컴파일 언어 - 소스 코드 여러 개를 하나로 묶어서 컴파일한 후에 실행하는 프로그래밍 언어 ( c,c++ ,Java Objective C 등) 인터프리터 언어 - 프로그램을 한 줄마다 기계어로 번역해서 실행하는 프로그래밍 언어 (자바스크립트, 파이썬, 루비 , 펄 등) 인터프리터 언어는 프로그램을 바로 실행하고 확인할 수 있지만 처리 속도가 느리다는 단점이 있다. 프로그래밍 언어의 유형 절차적 언어 - 절차를 순서대로 작성해 나간다. 객채 지향 언어 - 처리와 관련된 데이터와 절차를 하나로 묶어 객체 단위로 관리하는 언어 함수형 언어 - 프로그램을 함수를 조합하여 구현해 나간다...
Node.js 최신 버전 다운 받기 아래 링크 사이트 들어가셔서 본인 컴퓨터에 맞는 파일을 다운받으시면 됩니다. https://nodejs.org/ko/download/ 저는 윈도우 64bit 라서 Windows Installer (.msi) 64-bit를 다운받았습니다. 파일을 다운받으시고 다운 받은 파일을 실행을 시킵니다. 계속 넥스트 누르시구 인스톨 해주시면 됩니다. Finish 누르시면 설치가 끝났습니다. 보통 자바스크립트 프로그램 작성용 편집기나 통합 개방 환경(IDE)은 유료 제품으로 서브라임 텍스트와 웹 스톰을 많이 사용하고 무료로 배포되는 제품으로 비주얼 스튜디오 코드와 어도비 브래킷을 많이 사용합니다.
퀵 정렬이란? 가장 빠른 정렬 알고리즘 중의 하나로 널리 사용되고 있습니다. 퀵 정렬은 피벗(pivot)을 기준으로 정렬을 하게 됩니다. 피벗보다 작다면 피벗기준으로 왼쪽으로 이동시키고 피벗보다 크다면 피벗기준으로 오른쪽으로 이동시킵니다. 어떤식으로 동작하는지 그림을 통해서 확인해보겠습니다. 퀵 정렬소스 코드 https://github.com/jokerKwu/java/blob/master/JavaStructure/src/QuickSort.java
셸 정렬(Shell Sort)이란? 단순 삽입 정렬의 장점은 살리고 단점은 보완하여 좀 더 빠르게 정렬하는 알고리즘입니다. 삽입 정렬에 장단점으로 초기에 시간이 오래 걸리지만 정렬이 마칠 때 쯤이면 속도가 빨리집니다. 그러나 삽입할 위치가 멀리 떨어져 있다면 이동해야 되는 횟수가 많아집니다. (전체적으로 이동시켜야 되기 때문에) 셸 정렬은 삽입 정렬의 장점을 살리고 단점을 보완한 알고리즘이라고 생각하시면 됩니다. 먼저 정렬할 배열의 요소를 그룹으로 나눠 각 그룹 별로 단순 삽입 정렬을 수행하고, 그 그룹을 합치면서 정렬을 반복하여 요소의 이동 횟수를 줄이는 방법입니다. 아래 그림을 통해서 셸 정렬이 어떤식으로 동작하는 확인해보겠습니다. 그림을 통해서 확인했듯이 전체적으로 움직이는 횟수가 많이 줄어든 것을..