그래프 데이터베이스를 사용하는 이유? 전통적인 RDBMS 기술보더 더 관계를 잘 표현할 수 있는 데이터베이스로 그래프가 활용 그래프 데이터베이스는 거미줄처럼 복잡한 관계를 가지고 있는 빅데이터를 분석하는데 용이 그래프 데이터베이스는 그래프 이론에 토대를 둔 일종의 NoSQL 데이터베이스 그래프 데이터베이스란? 기존 관계형 데이터베이스와 비교를 해보면, 기존 관계형 데이터베이스 특징 관계형 데이터베이스(RDB)는 데이터를 테이블에 저장함 테이블은 레코드와 컬럼으로 구성되어있고, 테이블내의 외래키를 통해 두 엔티티 사이의 관계를 표현하는데 사용함. SQL이라는 쿼리를 사용하여 데이터를 조회하거나 업데이트 할 수 있음 RDB의 join 조인은 외래키와 테이블의 모든 행의 기본키와 일치시켜 쿼리시 계산한다. 이..
Neo4j Neo4j사가 개발한 '그래프 데이터베이스' 관리 시스템 Neo4j는 GPL3 라이선스의 오픈 소스 커뮤니티 에디션으로 이용이 가능 Neo4j는 Java로 구현되어 있음 Cypher Query Language 를 통해 다른 언어로 작성된 소프트웨어에서 접근이 가능 Graph Database - https://memostack.tistory.com/94 Cypher Query Language (사이퍼 질의어) - 그래프의 효율적인 질의 및 업데이트를 할 때 사용하는 선언형 그래프 질의어 - Cypher는 비교적 단순하고 매우 강력한 언어 (복잡한 데이터베이스 쿼리를 쉽게 표현할 수 있음) neo4j 의 github Link: https://github.com/neo4j/neo4j neo4j/ne..
피보나치 수열 피보나치 수열을 이전 항 2개를 더한값이 현재 항이 되는 수열이다. 예를들어, A(n) = A(n-1) + A(n-2) (단, A(1) = 1, A(2) = 1 이다) 를 만족하는 수열 2 3 5 8 13 21 34 55 89 144 233 ... 프로그래밍 피보나치 수열을 풀어보는 방법은 여러방법이 있다. 그 중 아래 3가지 방법으로 풀어본다. 배열로 풀어보는 방법 배열없이 풀어보는 방법 재귀함수를 이용하는 방법 1. 배열로 풀어보는 방법 STEP 1. int 배열을 선언한다. STEP 2. A(1) = 1, A(2) = 1을 미리 초기화한다. STEP 3. 반복문을 이용하여 A(n) = A(n-1) + A(n-2)를 이용하여 계속해서 더한다. public static void main(..
문제의 저작권은 프로그래머스(https://www.acmicpc.net/)에게 있습니다. 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 예제 a|b|result 5|24|TUE Coding - Java if문을 사용하여 1월, 2월..
문제의 저작권은 프로그래머스(https://www.acmicpc.net/)에게 있습니다. 문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 예제 // Input abcde // Output c // Input qwer // Output we Coding - Java substring()을 이용하여, 가운데에 위치한 문자를 가져온다. public static String solution(String s) { String answer = ""; final int length = s.length(); if (0 == length % 2) { // 짝수 final in..
목표 Integer.parseInt()와 Integer.valueOf()의 차이를 알아본다. 차이점 문자열로 된 숫자를 parseInt와 valueOf를 사용하여 타입 변환을 해보고 출력해보면 같은 결과가 나온다. public class Main { public static void main(String[] args) { String angel = "1004"; // 출력 System.out.println(Integer.parseInt(angel)); // 1004 System.out.println(Integer.valueOf(angel)); // 1004 } } 1004 1004 타입을 찍어보면, parseInt의 경우는 getClass()라는 메소드가 없어서 오류가 발생한다. 반면, valueOf는 ..
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output // Input 5 5 // Output == Coding - Java 단순히 if문을 이용하여 두 수를 비교하여 알맞은 부등호를 출력하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void..
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 예제 // Input 1 2 // Output 3 Coding - Java 콘솔로 입력을 받을때는 Scanner 또는 BufferedReader, System.in.read()가 있다. 본 글에서는 BufferedReader 와 System.in.read()를 이용하여 문제를 풀었다. 방법 1. BufferedReader 이용 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[]..
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 아래 예제와 같이 고양이를 출력하시오. 예제 // Input 없음 // Output \ /\ ) ( ') ( / ) \(__)| Coding - Java 쉬운 문제 같지만, 성급하게 풀면 이스케이프 문자를 신경쓰지 못하고 틀릴 확률이 높다. (정답률도 36.614%...) 백슬래쉬(\)를 주의해서 입력해야 함. public class Main { public static void main(String[] args) { System.out.println("\\ /\\\n" + " ) ( ')\n" + "( / )\n" + " \\(__)|"); } } 채점 결과 Reference https://www.acmic..
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 예제 // Input 없음 // Output 강한친구 대한육군 강한친구 대한육군 Coding - Java 간단한 문제이고, 방법 2가지로 풀어볼 수 있다. 방법 1. System.out.println()를 2번 호출 방법 2. 개행문자(\n)를 이용 방법 3. 람다식을 이용한 방법 (비추천, 비효율적이기 때문에) // 방법 ..