본문 바로가기

전체 글213

맥 터미널로 mysql 사용하기 Mac Terminal로 mysql을 접속하는 방법과 기본 SQL기본 query문을 알아보도록 하겠습니다. 1. mysql 접속하기 mysql이 설치되어 있는 상태에서, terminal을 통해 mysql에 접속하려면 아래와 같이 명령어를 사용하면 됩니다. 그러면 password 입력하는 라인이 생성되고, 설정해 둔 password를 입력하여 접속하면 됩니다. mysql -u root -p //설정한 비밀번호 입력 2. data base 만들기 mysql을 설치만 하고 아무 작업도 하지 않은 상태라면 mysql 안에는 아무런 데이터가 존재하지 않을 것입니다. 그렇기 때문에 data를 관리할 data base를 먼저 만들어 주어야 합니다. CREATE DATABASE ggdatabase; 이렇게 db를 만들.. 2022. 6. 12.
int를 char로 변형하기! Ascii code table을 보면 알파벳 마다 해당하는 정수가 있습니다. 그렇다면 그 정수값을 가지고 있을 때 어떻게 char 형태로 변형할 수 있을까요? int를 double로 바꾸는 것과 마찬가지로 casting으로 바꿔주면 됩니다! int num = 97; //char 타입으로 캐스팅! char aChar = (char) num; System.out.println(aChar); //Prints a 그리고 알파벳과 알파벳을 나타내는 숫자는 알고 있으면 편할 것 같다는 생각을 하였습니다. A 65 a 97 ... ... ... ... Z 90 z 122 2022. 6. 10.
Integer 나눗셈 시 소수점도 나타나게 하기 매번 헷갈려서 적어놓는 Integer끼리 / 연산자로 나눌 때, 소수점도 나타나게 하려면! int a = 1; int b = 3; //(double)로 캐스팅 해주어야 함! double result = (double) a / b; (double) casting을 하지 않으면 원하는 대로 값이 나오지 않는다. 그리고 소수점 자리수를 설정하려면! //"%.2f" String.format("%.2f", result); String.format("%.nf", 숫자); 이렇게 할 수 있다. n에 소수점 몇째 자리까지 할 지 숫자를 설정하면 됨 참고자료 https://www.wikihow.com/Divide-in-Java-with-Decimals#:~:text=If%20you%20need%20to%20divide,.. 2022. 6. 8.
Comparable & Comparator 인터페이스 사용하기! 안녕하세요! 이번에는 컬렉션 내부의 요소들의 정렬 기준을 정의할 때 사용되는 Comparable과 Comparator에 대해 알아보려고 합니다. 이 두 interface는 이름도 기능도 비슷한데 쓰임에는 약간의 차이가 있습니다. Comparable Comparator 1. 한 가지 기준으로 분류할 때 사용 1. 다수의 분류 기준이 필요 할 때 사용 2. compareTo() method 제공 2. compare() method, equals() method 제공 3. class에 영향을 줌 (정렬이 필요한 class에 implements) 3. class에 영향을 주지 않음 (별도로 class를 만들거나, 익명 클래스로 사용가능) 이 두 가지 interface를 사용해서 정렬 방법을 원하는 대로 정의할 .. 2022. 6. 4.
DP-Coin Change Algorithm 코인 체인지 알고리즘! Dynamic Programmming(동적 계획법)이란 복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방식을 의미합니다. 동적 계획법을 구현하는 방법 중의 하나가 바로 coin change algorithm(동전 선택 알고리즘) 입니다! 어떻게 코드로 구현하는 지, 어떠한 경우에 사용되는지 한 번 알아보겠습니다. ☺️ 1. 코드 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //amount원 만큼을 coins[]에 있는 coin들을 사용하여 만들 수 있는 조합의 수를 구하는 method public static long change(int amount, int[] coins) { //조합의 수를 저장할 array 생성 long[] combinat.. 2022. 6. 2.
Graph class 만들기! 안녕하세요 ☺️ 지난번에 알아보았던 Graph! 그렇다면 코드로는 어떻게 나타낼 수 있는지 알아보겠습니다. 크게 Adjacency matrix(인접 행렬)와 Adjacency list(인접 리스트)가 있었는데, 두 가지 모두 코드로 설계해보겠습니다. 먼저! 코드를 작성하기 전에 Graph에는 어떤 것들이 필요한 지 생각해 보면 작성하기 훨씬 수월합니다. 1) Graph를 구성하는 것에는 Vertex가 있죠 2) 또, vertex들을 연결하는 edge가 있습니다. 그렇다면 1) vertex를 추가할 수 있는 코드 2) edge를 추가할 수 있는 코드 이렇게 두개는 필수적으로 들어가야 겠다는 사실을 인지하고 코드를 작성해주면 됩니다! Graph를 이루고 있는 것은 Vertex이죠. Vertex는 node입니.. 2022. 6. 1.
Non-linear(비선형)자료구조(2) - Graph(그래프) 안녕하세요! 이번 글에서는 또다른 비선형 자료구조인 graph에 대해 알아보겠습니다. 처음에 그래프라는 단어를 들었을 때, 코드로 그래프를 어떻게 표현한다는 거지 라는 생각과 엄청나게 개념이 복잡할 수도 있다는 무서움이 있었습니다.😂 그런데 막상 알아보니 크게 두려워할 존재는 아니었습니다.☺️ 그래프는 아래 그림과 같은 형태를 띄는 데이터 구조를 뜻합니다. 트리와 유사하게 노드가 있고, 노드들을 연결하는 edge가 있죠? 구성 요소는 유사한데, 트리와는 조금 다른 것 같습니다. 한번 그림으로 tree와 차이점을 살펴보도록 하겠습니다. 이렇게 양옆에 두고 보니 좀 더 차이점이 명확하게 보이죠? 가장 크게 눈에 띄는 점은 트리는 일방향인 반면에 그래프는 루프 형태가 가능하다는 것입니다. Tree에서 node.. 2022. 6. 1.
Counting sort(계수 정렬) - O(n) Counting sort는 배열에 담긴 숫자가 몇 번씩 들어가 있는지 counting하여 정렬해주는 방식입니다! 예를 들어서 1부터 9까지의 정수만 들어갈 수 있는 int[] unsorted = {9, 2, 1, 3, 9, 7} 이라는 배열이 있다고 가정하면 index가 0부터 9까지의 빈 배열을 하나 만들어 줍니다. int[] countArr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} countArr의 인덱스가 1부터 9까지의 정수 역할을 해주게 됩니다. index 0 에는 숫자 0의 갯수가 들어가고, index 1에는 숫자 1의 갯수가 들어가고, index 2에는 숫자 2의 갯수가 들어가고,,,index 9에는 숫자 9의 갯수가 들어가게 되는 것입니다. (여기서는 1~9만 들어가므로 .. 2022. 5. 31.
Bubble sort(버블 정렬) - O(n2) (효율적인 코드 추가) 이름이 귀여운 bubble sort는 배열에서 i번째 요소와 (i + 1)번째 요소 값의 크기를 비교한 후 i번째 요소의 값이 (i + 1)번째 요소의 값보다 크다면 서로 자리를 바꾸어 주는 방식의 정렬법 입니다. 두 요소 중에 작은 값이 수면 위로 버블처럼 떠오르는 장면을 생각하면, 왜 이름이 버블 정렬인지 알 수 있을 것 같습니다. 배열의 모든 요소를 반복해서 돌며 다 확인하기 때문에 시간 복잡도가 O(n2)입니다. - 사용: ① 배열의 규모가 작을 때 적합 ② 구현이 비교적 간단 - 시간 복잡도: O(n2) - 구현 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 public static void bubbleSort(int[] arr) { for(int i = 0; i 2022. 5. 31.
반응형