분류 전체보기114 PL/SQL ORACLE 완전 기초부터!! - 변수 선언 : ORACLE 11XE 버전에서 작성되었습니다. : 이 글은 나와같이 여태까지 DBMS SQL문을 SELECT INSERT UPDATE DELETE문만을 사용하는 것으로 알고 있는 분들을 위한 글이다. : 나는 위 4가지 형태의 QEURY만을 접했고 알았다. 하지만 놀랍게도 ( 나한테만 ) ORACLE역시도 변수를 설정하고 함수를 설정하고 이러한 작업들을 할 수 있다. : 같이 공부해보자. : 우선 변수를 선언하는 방법이다. DECLARE 부분에서 변수를 선언한다. TEST_WORD : 변수명 VARCHAR2(100) : 타입 이렇게 기본적인 선언을 DECLARE에서 하게된다. 선언이 필요없는 경우 DECLARE부분은 비워져도 무관하다. 이후 BEGIN에 실행문이 들어가게 된다. 어떤 언어를 쓰고있었는.. 2022. 2. 28. ==연산자와 .equals() 그리고 hashCode 우선 먼저 == : 내가 선택한 두 객체가 같은지 비교할때 사용하는 방법들이다. : 값 타입들을 비교할때 사용한다면, 숫자값은 int, long, double등과 관계없이 ( 1과 1.0 이라 하더라도 ) 우리가 인지하는 것과 같이 같은지 알 수 있다. 하지만 String의 경우로 보면 인지하는 것과 같이 다름을 알 수 있다. 이는, == 연산자는 주소값을 비교하는 연산자이기 때문이다. String 타입의 경우 주소가 아닌 값을 비교하기 위해서는 .equals() 메소드를 활용해야 한다. : == 연산자에 추가적으로 확인해 볼 점은 static을 붙여 메모리에 클래스와 같은 시점에 올라가는 경우 참조하는 주소값이 다르기 때문에 값이 같더라도 == 연산자에 대해 false가 출력된다는 이야기가 있었으나 실.. 2022. 1. 27. BOJ3052 - 서로 다른 나머지의 개수 간단한 문제이나, 은근 자주 쓰이는 생각의 방법을 담고 있는 문제라 기록할 가치가 있어 적는다. 단순하게 생각하면 나머지들을 구하고, 서로 다른 값이 있는 것을 비교하는 알고리즘을 짤 수 있다. 이 경우 이중 for문이 사용되고, 하나의 값마다 전체 리스트에 중복값이 있는지 비교하게 되므로 시간복잡도는 O(n^2) 이 된다. 여기서 이런 식으로 값을 받아올때 42로 나눈 나머지를 저장하고, 나머지의 종류를 세어주는 것으로 시간복잡도를 낮출 수 있다. 이러한 방법처럼 내가 원하는 데이터로 변환해서 다루는 것이 유용한 경우들이 있다. 2022. 1. 13. StringBuilder, StringBuffer 이는 String의 특성을 먼저 보는 것이 좋다. 다들 알다시피 String str1 = "가나다"; String str2 = "라마바"; str1 += str2; System.out.println(str1); 를 한다면, 출력되는 문자열은 가나다라마바 일 것이다. 이때 String타입은 불변성을 갖기 때문에, 원래 str1이 갖고있던 "가나다"에 문자열이 추가되는 것이 아니라, "가다나"는 GC ( garbage collector )의 처리대상이 되고, "가나다라마바"가 str1이 갖게되는 값이 된다. 즉 사용되는 메모리가 많아지는 것이다. 이로인해 StringBuilder와 StringBuffer가 사용되는데, StringBuilder sb = new StringBuilder("가나다"); Syste.. 2022. 1. 11. StringTokenizer StringTokenizer : 문자열을 구분자로 쪼개주는 클래스이다. 이렇게 쪼개진 문자열을 토큰(Token)이라 부른다. : 생성자 ( Constructor ) StringTokenizer(String str); : 문자열을 기본 구분자로 쪼개줌. 설정된 기본 구분자는 \t\n\r\t 와 같은 공백. StringTokenizer(String str, String delim); : 설정한 delim 문자열로 str을 쪼개줌. StringTokenizer(String str, String delim, boolean returnDelims); 설정한 delim으로 str을 쪼개는데, 구분자를 포함할지 정함. true일시 포함, false일시 미포함 : 메소드 ( method ) int countTokens.. 2022. 1. 11. EOF ( End Of File ) 과 while문 https://www.acmicpc.net/problem/10951 의 문제를 풀다가 알게 된 것 중 하나이다. 뒤이어 작성 할 StringTokenizer와 StringBuilder도 이번에 배웠지만 EOF.... ㅠㅠ 문제를 우선 간단히 보자. 보다시피 아주 간단한 문제다. 그리고 놀랍게도 정답비율 35%.. 입력을 보면 계산이 필요한 것들만 딱 입력이 된다. 끝을 알리는 방법도, 계산할 방법도 없다. 내 경우에는 이렇게 코드를 짰는데, 이를 이클립스상에서 출력하고 입력 예제를 넣는다면 NoSuchElement 예외가 발생한다. 이는 str에 "" 이 입력되어 st.nextToken()을 만나게되면 가리킬 대상이 없기 때문인데 BOJ에 제출하게되면 맞았습니다! 를 받아볼 수 있다. 이에 몰랐던 개념이.. 2022. 1. 11. BOJ2439 - 별찍기 처음 자바 공부할때 봤던 별찍기 문제다. 그 당시에는 어떻게 풀었는지 기억이 안나지만, 좀 고민을 했던 문제라 포스트를 남겨보려한다. 풀고나서 내 풀이방법보다 좋은 방법을 배우고자 검색해보니 이중 for문을 이용한 풀이만 보였다. ( 모든 글을 검색해본 것은 아니다. ) n이 작기때문에 이중for문으로도 충분하겠지만 개인적으로 시간복잡도를 낮추는 방법을 찾고자 하였고 혹시라도 나와같은 왕초보 분들에게 도움이 되지 않을까하여 공유한다. 첫 번째 for문으로 n길이만큼 공백의 문구를 만든다. 두 번째 for문에서 이전에 추가한 *들을 잘라내어 보관하고 *이 추가되기 앞까지의 공백을 result에 대입한다. 이후 *을 추가하고 잘라낸 뒷 부분을 합치면 된다. 2022. 1. 11. Binary Index Tree 구현 중.. 노드의 개수가 5인 BIT를 구현해보던 중, 규칙이 성립하기 어려움을 보았다. 둘 중에 어느 그림이 맞는지 몰라 두번 그려보고 결국 그래프의 모습으로 나타내 보았다. 먼저의 이진법으로 인덱스를 표시한 그림을 보면 앞서 배운 업데이트와 구간합을 구할때 마지막 1의 비트를 변환하는 방법은 통용되지 않음을 알 수 있다. 그래서 노드의 개수를 넘는 가장작은 2의 제곱수의 길이에 해당 그래프는 포함시키는 방법으로 해결했다. 이 경우 공간의 낭비가 심한 것 같다. 다른 방법이 있을까? 2022. 1. 4. 바이너리 인덱스 트리 ( Binary Index Tree, BIT ) ( 강의 출처 : https://www.youtube.com/watch?v=fg2iGP4e2mc&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=14&ab_channel=%EB%8F%99%EB%B9%88%EB%82%98 ) : 바이너리 인덱스 트리 ( Binary Index Tree, BIT ) 펜윅 트리라고도 한다. : 데이터의 업데이트가 가능한 상황에서의 구간 합 ( BOJ 문제 : https://www.acmicpc.net/problem/2042 ) 어떤 상황을 의미하냐면, 1,2,3,4,5 가 있을때, 3번째 숫자를 6으로 바꾸고 2번째부터 5번째 수의 합을 구하면 17이 된다. 그리고 5번째 숫자를 2로 바꾸고 3번째부터 5번째 수의 합을 구하면 12가 된다. .. 2022. 1. 3. 벨만 포드 알고리즘 ( BellmanFord Algorithm ) ( 강의 출처 : https://www.youtube.com/watch?v=Ppimbaxm8d8&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=13&ab_channel=%EB%8F%99%EB%B9%88%EB%82%98 ) : 벨만 포드 알고리즘 여러 노드가 있을때, 시작점에서 다른 노드로 가는 최소 경로를 구하는 다익스트라 ( DIjkstra ) 알고리즘은 음수 간선이 포함된 경우 사용할 수 없다. 특수한 경우에는 동일한 과정으로 값을 도출할 수 있지만, 음의 간선이 Cycle을 이루고, 그 Cycle을 순환하는 경우 총 합이 음수라면 그 사이클을 무한히 회전하면 음의 무한의 최단 거리를 가질 수 있게되기 때문이다. 음수 간선이 있는 경우 안된다는건 알았는데, 진짜 무.. 2021. 12. 31. 이전 1 2 3 4 5 6 ··· 12 다음