전체 글 55

[Java] - 오토박싱, 언박싱 (Autoboxing and Unboxing)

Autoboxing 자바로 개발을 하다보면 int와 같은 primitive type이 클래스가 아니기 때문에 불편을 겪은적이 있다. 예를 들어, 정수로 되어 있는 리스트를 만들어 본다고 하자 public class Main { public static void main(String[] args) { ArrayList intArrayList = new ArrayList(); } 이렇게 정수로 된 ArrayList를 만드려고 하면 에러가 나온다. ArrayList에 들어갈수 있는건 클래스여야 하기 때문이다.. 물론, 이런 상황에 대한 해법으로 int를 클래스로 직접 만들수도 있다. import java.util.ArrayList; class IntClass { private int myValue; publi..

[Java] 배열을 복사하는 방법 (Shallow Copy, Deep Copy)

Shallow Copy (얕은 복사) 배열을 복사하는 방법에는 Shallow Copy와 Deep Copy가 있는데 먼저 Shallow Copy에 대해서 알아 보았다. 얕은 복사라고도 불리며 원본 객체와 복사한 객체는 메모리에서 같은 배열을 가르키게 된다 복사본을 변경할 경우 당연히 원본도 변경 얕은 복사를 하는 방법 public class Array_Copy{ public static void main(String[] args) { int[] original = { 2, 5, 10, 15, 1557, 31, 488 }; int[] copied = original; } } Deep Copy (깊은 복사) 원본의 전체 배열을 복사해서 메모리의 다른 위치에 지정한 후 복사한 객체에 할당한다. 원본 객체와 복사..

(파이썬) [위클리 챌린지 12주차] - 피로도

문제 https://programmers.co.kr/learn/courses/30/lessons/87946 오늘은 프로그래머스의 위클리 챌린지 12주차 문제인 피로도를 풀어 보았습니다. 설명 시작 피로도가 숫자로 주어지고 던전들이 리스트로 주어 집니다. 각 던전들은 [해당 던전 입장에 필요한 최소 피로도, 소모 피로도] 로 되어 있으며 현재 남아 있는 피로도가 최소 피로도와 같거나 더 많아야 해당하는 던전에 입장 가능 합니다. 입장하고 나면 소모 피로도 값만큼 현재 가지고 있는 피로도가 줄어듭니다. 이때, 최대한 여러 던전을 방문할수 있는 순서로 방문 했을때 몇개의 던전을 방문할수 있는지 찾는 문제입니다. 단, 각 던전은 한번씩만 방문 가능합니다. 만약 1번 던전에 입장한적이 있으면 다시 입장 불가능 합..

[Database] Index란 무엇인가?

Index란 무엇인가? 데이터베이스에서 인덱스는 책의 맨 뒤에 있는 색인 같습니다. 정보를 찾을때 더 빠르게 찾을수 있게 도와줍니다. 만약 제가 색인 없이 책에서 "cat"이라는 단어를 찾아야 된다면, 전체 페이지를 하나 하나 훑으면서 cat이란 단어를 찾아야 됩니다. 쿼리문 CREATE INDEX index_name ON table_name (column_name); 이렇게 하나의 column에 대해 생성할수도 있고 CREATE INDEX index_name ON table_name (column_name1, column_name2); 이렇게 2개의 column에 대해서도 index를 생성할수 있습니다. 언제 사용해야 될까? 정렬이 되어 있지 않은 column을 찾아야 될때 index는 메모리를 사용하..

Database 2021.10.22

[SQL] DELETE, TRUNCATE, DROP의 차이

Delete, Truncate, Drop의 차이 테이블을 지우는 명령어에 대해 알아 보았습니다. Delete Truncate Drop DELETE DELETE FROM players; DELETE을 사용해서 테이블에 있는 데이터를 지울 경우 특징 where를 사용하여 원하는 데이터만 지울수 있다 데이터를 지워도 테이블의 용량은 줄어들지 않는다 COMMIT이 포함되어 있지 않기 때문에 지우고 나서 ROLLBACK을 사용해서 데이터를 되돌릴수 있다 데이터를 지워도 전체 테이블의 정보는 아직 살아 있다 TRUNCATE TRUNCATE players; TRUNCATE을 사용해서 테이블에 있는 데이터를 지울 경우 특징 COMMIT이 포함되어 있기 때문에 지우고 나면 되돌릴수 없다 데이터들이 차지하고 있던 메모리도..

Database/SQL 2021.10.18

(파이썬) [위클리 챌린지 10주차] - 교점에 별 만들기

프로그래머스 10주차 - 교점에 별 만들기 코딩테스트 연습 - 10주차 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 프로그래머스 위클리 챌린지 10주차 문제인 교점에 별 만들기를 풀어 보았다. 풀이 방식 인풋 안에 있는 직선들끼리 접점이 있는지 탐색 if를 사용해서..

[위클리 챌린지 1주차] - 부족한 금액 계산하기 (파이썬)

프로그래머스의 위클리 챌린지 1주차를 풀었습니다. 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 풀이 놀이기구를 count번 타게 되었을때 필요한 금액 예시) count = 5, price = 100 100*1+100*2+100*3+100*4+100*5 = 1500 for문을 이용해서 1부터 count까지 price를 곱한 금액을 총 비용으로 변수에 할당 예산인 ..

Algorithm 2021.09.14

(파이썬) [알고리즘 문제 풀이] - 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484 풀이 0은 알수 없는 번호이기 때문에 내가 필요한 숫자 일수도 있고 아닐수도 있습니다. 최고 순위는 lottos 리스트 안에 있는 0이 더 높은 순위로 당첨되기 위해 필요한 숫자라고 가정 당첨 번호와 일치한 숫자의 개수 + 0의 개수 최저 순위는 lottos 리스트 안에 있는 0이 모두 당첨되지 않은 숫자들로 가정 당첨 번호와 일치한 숫자의 개수 일치된 번호의 숫자가 0개이거나 1개일때는 모두 6등 그 이후부터는 일치된 번호가 한개 증가할때마다 등수가 올라간다. 코드 def solution(lottos, win_nums): win = 0 zero = 0 rank = [6,6,5,4,3,2,1] for n..

[Java] - 쓰레드(Thread)의 사용

쓰레드란 무엇인가? 쓰레드가 무엇인지에 대해서 검색하면 프로세스 내에서 실행되는 흐름의 단위라고 나온다. 기본적으로 하나의 프로세스 당 최소 한개의 쓰레드를 가진다. 즉, 이 말은 하나의 프로세스 내에 여러 쓰레드를 가질수도 있다는 것을 뜻한다. 자바에서 쓰레드를 구현하는 방법에는 두가지가 있습니다. Thread Runnable 둘의 차이는 Thread를 클래스라서 extends를 이용해서 상속 받아야 되지만 Runnable은 인터페이스 이기 때문에 implements를 이용해서 삭속 받는다는 것이다. Thread 클래스를 상속 받아서 구현하면 다른 클래스를 상속 받을수 없지만 Runnable 인터페이스를 상속 받으면 동시에 다른 클래스도 상속 받을수 있다는 장점이 있다. 둘 모두 예시를 통해 확인해보자..

[Java] - 싱글턴 패턴 (Singleton Pattern)

싱글턴 패턴이란? 하나의 인스턴스만 가진 클래스를 정의하고, 해당 인스턴스를 다른 클래스에서 사용할수 있게 하는 디자인 패턴을 뜻한다. 즉, 클래스의 인스턴스는 한번만 생성되어야 하며, 생성된 객체는 모든 다른 클래스에서 사용될수 있다. 찾아보니 Spring framework에서 기본 객체 운영방식이 싱글턴 패턴이라고 하네요. 자바를 공부하면서 꼭 알아둬야 되는 디자인 패턴 같습니다. 언제 사용하는가 시스템 상에서 단 한번 객체를 생성하고 여러 곳에서 공유해 사용하고자 할 때 적용방법 생성자의 접근 제어자를 private으로 명시해 외부에서 객체 생성하는 것을 막는다. private static 멤버변수 차원에서 클래스 로딩시점에 자신의 생성자를 이용해 객체를 생성하고 주소값을 저장한다. public s..