cndtjq145의 등록된 링크

 cndtjq145로 등록된 네이버 블로그 포스트 수는 61건입니다.

[ 알고리즘 ] 코딩 - programmers 124나라의 숫자 [내부링크]

* Level 2* 3진법의 0, 1, 2가 1, 2, 4로 바뀌었다!* 규칙을 찾으면 쉽게 풀린다!* 3의 배수인 경우에 나...

[ 알고리즘 ] 코딩 - Programmers - n진수 게임 [내부링크]

* Level 2* 2018 KAKAO BLIND* 1. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, ...

[ 알고리즘 ] 코딩 - Programmers - 큰 수 만들기 [내부링크]

* Level 2* number 숫자열에서 k개의 수를 제거하고 남은 수 중 가장 큰 수를 찾는 문제* number의 자리수...

[ 알고리즘 ] 코딩 - Programmers - 오픈채팅방 [내부링크]

* Level 2* Enter / Change / Leave의 명령이 있다.* Enter userId nickname* Change userId nickn...

[ 알고리즘 ] 코딩 백준 - 17281 야구 [내부링크]

* BOJ 17281 - 야구* 선수들의 득점은 정해져있다. 1번 선수가 4번타자.* 순서를 정해서 최대값을 구...

[ 알고리즘 ] 코딩 SWEA 5656 - 벽돌깨기.java [내부링크]

* SWEA 5656 - 벽돌깨기-자바* 구슬은 좌, 우로만 움직일 수 있음.* 가장 위 벽돌만 깨기 가능* 벽돌에...

[ 알고리즘 ] 코딩 SWEA 5643 키순서.java [내부링크]

* SWEA 5643 키순서.java* 자기 자신으로부터 큰 친구들(next)과 작은친구들(from)을 모두 보자* next ...

[ 알고리즘 ] 코딩 SWEA 1812 수정이의 타일 자르기.java [내부링크]

* SWEA 1812 타일 자르기* 입력으로 들어오는 값을 2의 지수승으로 곱해야 한다!* 타일을 어떻게 자르...

[ 알고리즘 ] 코딩 - 백준 1647 - 도시분할계획 [내부링크]

백준 1647 - 도시 분할 계획.java* 한 마을을 2개의 구역으로 나눈다. N개의 집과 M개의 길이 있다. 길은...

[ 알고리즘 ] 코딩 - 백준 - 2630 - 색종이.java [내부링크]

* 백준 2360 - 색종이 만들기.java* 전체 NxN크기가 같은 색으로 되어있지 않다면 * 4등분.* 한 영역만 ...

[ IT ] 코딩 Java의 기본( Lambda , Stream API ) [내부링크]

Lambda ExpressionJava 8부터 추가Lambda는 Single Method Interface에 대해 그 구현체의 구현 Met...

[ IT ] 코딩 Java의 기본 ( XML , XML-DTD, SAX, DOM Parser) [내부링크]

XML태그 등을 이용하여 문서나 데이터의 구조를 명시하는 언어. SGML, HTML등이 있음.SGML ...

[ 알고리즘 ] 코딩 - 백준 17472 - 다리만들기 2 [내부링크]

백준 17472 - 다리만들기 2* 지도 NxM* 섬은 상하좌우로 붙어있는 덩어리.* 다리를 연결해서 모든 섬을 ...

[ 자바 - 이클립스 ] 나만의 템플릿 만드는 방법 [내부링크]

이번에 알아볼 정보는 이클립스에서 특정 나만의 템플릿을 만드는 방법이다.코딩을 하다보면 반복적으로 많...

[ 알고리즘 ] 코딩 백준 16236 - 아기상어 [내부링크]

백준 16236 - 아기상어* NxN크기 물고기 M마리 상어 1마리.* 한칸에는 물고기 1마리* 아기상어 초기크기...

[ 알고리즘 ] 코딩 정보 올림피아드 1681 - 해밀턴 순환 회로 [내부링크]

정보 올림피아드 1681 - 해밀턴 순환회로* 회사에서 출발하여 물건을 모두 배달하고* 다시 회사로 돌아오는...

[ 알고리즘 ] 코딩 SWEA 1251 - 하나로 [내부링크]

SWEA 1251 - 하나로* 주어진 모든 섬을 하나로 연결하자.* 단, 세율E, 길이L의 비용이 발생* 비용 : ...

[ 알고리즘 ] 코딩 SWEA 5653 - 줄기세포 배양 [내부링크]

SWEA 5653 - 줄기세포 배양* 줄기세포 생명력이라는 수치를 가지고 있음.* 초기 상태 비활성. 수치가 x...

[ 알고리즘 ] 코딩 백준 2933 - 미네랄 [내부링크]

백준 2933 - 미네랄* 두 사람은 한 동굴의 소유권을 가지고 싸운다.* 두 사람은 막대기를 던지며 싸우는데 미네랄을 파과할 수도 있다.* 동굴은 R x C크기. 각 칸은 비었거나 미네랄이 존재* 네 방향중 하나로 인접한 미네랄은 한 클러스터.* 한 사람은 왼쪽에 또 다른 사람은 오른쪽에 서있음.* 번갈아가며 막대기를 던짐. 막대는 날아가는 높이가 있고, 땅과 수평을 그리며 날아감.* 날아가다 미네랄을 만난다면 미네랄은 파괴되고 막대기는 멈춤.* 미네랄이 파괴된 경우에는 클러스터가 분리될 수도 있음. 분리된 클러스터는 중력의 영향을 받아 바닥으로 떨어지는데 다른 클러스터를 만나거나, 땅에 떨어질 때 까지 이동.아래와 같이 붉은 x가.......

[ IT ] 코딩 Java의 기본(IO, File) [내부링크]

Java IO데이터의 시작과 끝이 있고 양쪽 사이에 데이터의 이동이 생김.양쪽을 Node, 흐름을 Stream.Stream은 문자(Character)와 비문자(Binary) 두가지로 나님.문자 - Reader(읽기)와 Writer(쓰기)로 구분. - char 단위의 읽고 쓰기 비문자 - InputStream(읽기)과 OutputStream(쓰기)으로 나뉨. - Byte 단위의 읽고 쓰기InputStream과 OutputStream이 최상위 부모FileInputStream - 파일 내용을 Byte 단위로 읽겠다.FileOutputStream - 파일 내용을 Byte 단위로 쓰겠다.FileReader - 파일 내용을 Char 단위로 읽겠다.FileWriter - 파일 내용을 Char 단위로 쓰겠다.ex) 엑셀파일(.xls), 그림파일(.jpg), 음악파일(.mp3) 등등 ——> Byte .......

[ 알고리즘 ] 코딩 백준 9095 - 1, 2, 3 더하기 [내부링크]

백준 9095 - 1, 2, 3 더하기* 1,2,3을 더해서 목표하는 수가 나오는 경우의 수세기* 백트래킹의 기본.

[ 알고리즘 ] 코딩 백준 2661 - 좋은 수열 [내부링크]

백준 2661 - 좋은 수열* 1, 2, 3으로만 이루어지는 수열이 있음.* 인접 숫자가 하나라도 자신과 같으면 나쁜수열.* 같은 숫자가 연속되어 나오는 경우도 나쁜 수열. * ex) 123123 -> 123 연속. 나쁜 수열* 좋은 수열중에 가장 짧은 길이의 수열을 구하자.* 절반으로 나누어서 오른쪽 왼쪽의 문자열을 자리수만큼 비교하여 같은지 다른지 판단.* String.substring(start,end) 메서드 이용.* substring은 start는 포함, end는 미포함해서 새로운 String을 반환해준다.-- 123123의 경우 아래와 같은 로직으로 걸러진다 --

[ 알고리즘 ] 코딩 백준 1753 - 최단경로 [내부링크]

백준 1753 - 최단경로* 방향그래프가 주어지고 주어진 시작점에서 다른 모든 정점으로의* 최단경로를 구하는 문제.* 모든 가중치는 10이하.* V <= 20000, E <= 300000* 인접 행렬을 이용해서 그래프를 구성하면, 시간초과가 나온다.* 그렇기 때문에, 인접 리스트를 이용해서 구현해야한다.* 시간을 더 줄이고자 한다면 , PriorityQueue와 함께 사용하면 된다고 한다.* 여기서는 인접 리스트를 이용한 다익스트라 이용.

[ 알고리즘 ] 코딩 백준 14889 - 스타트와 링크 [내부링크]

백준 14889 - 스타트와 링크* N 은 짝수* 1부터 N까지 사람이 있음.* 각 사람마다 팀이되면 시너지 발생.* 팀의 시너지의 차이가 최소가 되는 경우를 찾아* 값을 출력

[ 알고리즘 ] 코딩 백준 17144 - 미세먼지 안녕!! [내부링크]

백준 17144 - 미세먼지여 안녕* R x C 크기.* 1번열에 공기청정기 설치. 두행 차지. ( 2x1 size, -1로 표시)* 청정기가 없는 칸에는 미세먼지가 있음. 미세먼지의 양은 Ar,c* 1초동안 아래와 같은 일이 발생.* 1. 미세먼지 확산. -> 미세먼지가 있는 모든 칸에서 동시발생.* - 4방향으로 확산. 공기청정기가 있거나, 칸이 없다면 확산x* - 확상양은 Ar,c/5 소수점 버림* - 남은 미세먼지의 양은 Ar,c - (Ar,c/5)x(확산된개수)* 2. 공기청정기 작동* - 공기청정기에서 바람 나옴. * - 청정기의 위쪽바람은 반시계방향 순환.* - 청정기의 아래쪽 바람은 시계방향으로 순환.* - 바람이 불면 바람의 방향으로 모두 한칸씩 이동.* - 청정기로 들어.......

[ 알고리즘 ] 코딩 백준 17471 - 게리맨더링 [내부링크]

백준 17471 - 게리맨더링 * 한 도시가 N개의 구역으로 나뉘어있음.* 1~N번 구역을 두개의 선거구로 나누어야한다. * 이때 선거구에 포함된 구역은 모두 연결이 되어있어야한다. * 두 선거구에 포함된 인구 차이가 최소인 경우를 찾아 출력.* 선택한 구역과 선택하지않은 구역이 연결되어 있는지 확인하는 과정이 필요.* 여기서는 BFS를 두 번해서 풀이.

[ 알고리즘 ] 코딩 SWEA 1767 - 프로세서 연결하기 [내부링크]

SWEA 1767 - 프로세서 연결하기* N x N개의 셀이있다.* 각 셀에는 1개의 코어 혹은 1개의 전선이 올 수 있다.* N+1의 가장자리에는 전원이 흐르고있다.* 코어와 전선을 연결하는 전선은 직선만 가능하다.* 전선은 절대 교차해서는 안된다.* 초기 코어의 위치가 주어진다.* (가장자리에 맞닿아있는 코어는 전원이 들어온 것으로 판단한다)* 최대한 많은 코어에 전원을 연결할 경우 전선 길이의 합은?* 여러 방법이 있다면 최소의 전선길이를 구하라.* 7 <= N <= 12* Core는 최소 1개 최대 12개* 최대한 많은 core를 연결해도 전원 연결이 안되는 core가 있을 수 있음.* 열심히 몸을 비틀며 코딩을 했지만, 결국 해결하지 못하고.......

[ 알고리즘 ]코딩 백준 17406 - 배열돌리기4 [내부링크]

백준 17406 - 배열돌리기 4* 크기는 N x M* r,c,s가 주어진다.* (r,c)위치에서 s크기만큼 8방향의 배열을 한칸씩 이동시켜 회전한다.* 여러개의 회전연산이 주어질때 배열의 한 행의 합이 최소인 경우를 출력하라.* 중복을 제거한 순열으로 나올수있는 모든 경우를 구해서 회전을 시킨다음 최소값 구하기* 배열 돌릴 때 조건을 제대로 안봐서 큰 낭패를 봤다... 언제나 문제는 열심히 꼼꼼히 보자!*** 제한조건 ***3 ≤ N, M ≤ 501 ≤ K ≤ 61 ≤ A[i][j] ≤ 1001 ≤ s1 ≤ r-s < r < r+s ≤ N1 ≤ c-s < c < c+s ≤ M

[ 알고리즘 ]코딩 백준 2206 - 벽 부수며 이동하기 [내부링크]

백준 2206 - 벽 부수며 이동하기* NxM크기* 0은 이동가능, 1은 벽* 1,1 -> NxM으로 갈 때 최단경로 구하기* 시작 + 끝을 포함한 이동횟수* 벽을 단 하나만 깨고 이동 할 수 있다.* 1<= N <= 1000, 1<= M <= 1000* 가는 길이 없으면 -1 출력* 처음에 짤때는 벽만 부수고 가면 되는줄 알고 짰는데 테스트케이스에서 무참히 걸린다.**벽을 부수면서 오는 것과 벽을 부수지 않고 오는 것을 따로 생각해야 풀린다. **

[ 알고리즘 ]코딩 정보 올림피아드 1863 - 종교 [내부링크]

정보 올림피아드 1863 문제* 학교에는 n (0 < n ≤ 50,000)명의 학생이 있다.* 같은 종교를 가지는 사람들 끼리 짝을 짓도록* 학생들이 가진 전체 종교의 수 구하기* 서로소 집합을 이용해서 간단하게 구현

[ 알고리즘 ]코딩 정보 올림피아드 1733 - 오목 [내부링크]

정보 올림피아드 - 1733 - 오목* 19개의 가로줄, 19개의 세로줄* 연속적으로 5개의 알이 놓이면 승리* (가로, 세로, 대각선)* 6개이상의 알이 놓이면 이긴것이 아님. 무조건 5개* 바둑판의 상태를 보고 검은색과 희색의 승패 여부를 판단.* 누가 이겼는지 출력, 비긴것도 출력* 검은돌 - 1, 흰돌 -2, 빈자리 - 0 * 출력시 가장 왼쪽돌의 위치를 출력 * 세로로 5개일 경우 가장 위쪽의 바둑돌의 위치를 출력* 뭔가 깔끔하게 짜는 방법은 없었을까.... 너무 무지막지하게 짠 것 같아 부끄럽다..

[ 알고리즘 ]코딩 백준 9663 - N-Queen - 2차원배열을 이용해서 구현 [내부링크]

백준 9663 - N-Queen* 크기 N x N 퀸 N개를 서로 공격할 수 없게 놓는 문제* 퀸을 놓는 방법의 수* 퀸은 상 하 좌 우 대각선 모두 공격할 수 있는 체스말이다.* 재귀 매개변수로 y+1이 들어가므로 행은 신경 안써도 된다.* 같은 열, 같은 대각선상에 퀸이 있는 경우 다음 열을 봐야한다.* 대각선상에 있는 것을 확인하려면 현재 놓으려는 퀸의 x2,y2좌표와 이미 놓아진 퀸의 x1,y1 좌표를 비교한다.* Math.abs(y1-y2) == Math.abs(x1-x2)인 경우 같은 대각선에 위치한다고 볼 수있다.* 백트래킹의 대표적인 예

[ 알고리즘 ]코딩 백준 9663 - N-Queen - 1차원배열을 이용해서 구현 [내부링크]

백준 9663 - N-Queen * 1차원 배열로 짜는 방법.* 이렇게 깔끔하게 짤 수 있게 열심히 공부해야겠다.

[ 알고리즘 ]코딩 SWEA 7793 - 오 나의 여신님 [내부링크]

SWEA 7793 - 오 나의 여신님* 악마는 악마의 손아귀라는 스킬을 사용한다.* 악마의손아귀 : 매 초마다 상하좌우 인접해있는 영역을 부식시키며 확장* 단 지은이라는 여신이 있는 공간은 피해를 입지않는다.* 수연이는 여신이 있는곳까지 가야한다!* NxM크기, 돌이 있는 곳은 갈 수없고, 부식되지않음.* 수연이 이동 동서남북 여신에게 가는 최소시간 구하기* 2 <= N,M <= 50* S : 수연, D : 여신, X : 돌, * : 악마* 악마들부터 수행 + Queue를 2개 이용해서 따로따로하면 기능구현이 더 쉽다고 하는데* 정확히 반대로 했다.. 수연이부터 이동시키고 Queue 하나로 타입을 나눠서..

[ 알고리즘 ] 코딩 백준 1987 - 알파벳 [내부링크]

백준 1987 - 알파벳* 세로 R 칸, 가로 C 칸의 표 모양의 보드가 있다. * 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀있다.* 1행 1열에는 말이 놓여있다. * 상하좌우 중 한 칸으로 이동이 가능한데 알파벳이 적힌 칸을 두 번 지날 수는 없다.* (맵 상에서 알파벳을 단 한 번만 밟고 이동한다)* 좌측 상단부터 시작해서 최대 몇 칸을 갈 수 있는지 구하라.* DFS, Backtracking.* 알파벳을 선택했는지 안 했는지 판단하며 이동하기 때문에 방문 체크는 없어도 괜찮다.* 처음에 아무 생각 없이 선택한 알파벳을 리스트에 저장했다가 속도가 미친 듯이 느려서 어이쿠 하고 후다닥 배열로 바꾸고 나니 조금 나아졌다^^...

[IT] 코딩 Java의 기본(예외 처리) [내부링크]

예외 처리예외 : 예기치 않은 일의 발생.예외의 키워드- try, catch, finally, throws, throw처리하는 방식에 따른 구분 - 간접 처리 방식(throws)과 직접 처리 방식(try, catch, finally)으로 구분자바에서의 예외는 모두 클래스로 정의되어 있다.사용자가 정의하는 예외예외 클래스 정의 : 예외 클래스를 상속해서 만든다.- RuntimeException 계열을 상속받으면 런타임 발생 예외가 된다.- RuntimeException 계열이 아닌 클래스를 상속받으면 컴파일 시점 발생 예외가 된다.예외 클래스 정의하기class 이름 extends 예외 클래스class MyException extends Exception : 컴파일 시점 예외. 반드시 발생한 위치에서 예외를 처리해야 한다.class .......

[ 알고리즘 ] 코딩 백준 15961 - 회전초밥 [내부링크]

백준 15961 - 회전초밥* 벨트위에 회전초밥이 있음. 같은 초밥이 둘 이상 있을 수있다.* 1. 연속으로 k개의 초밥을 먹으면 가격을 할인해준다.* 2. 모든 고객에게 초밥의 종류가 쓰여진 쿠폰을 주고, 1번행사에 참가한 경우 이 쿠폰에 적힌 종류의 초밥을 무료로 준다.* 행사에 참여하여 가능한한 많은 양의 초밥을 먹을 때 최대값을 출력* 무조건 연속된 경우만을 고려해야한다!!* N : 접시수, d : 초밥의 가지수, k : 연속해서 먹는 접시 수, c : 쿠폰번호* 생각하는데도... 테스트케이스도 .... 상당히 시간이.. 걸렸다.. * 큐로 짜도 괜찮을 거 같다!

[ 알고리즘 ] 코딩 SWEA 3234 - 준환이의 양팔저울 [내부링크]

SWEA 3234 - 준환이의 양팔저울* N개의 무게추를 저울에 올리는 방법은 N!* 왼쪽에 올릴 것인지 오른쪽에 올리 것인지를 선택하면 2^N * N!* 이때 저울의 오른쪽이 왼쪽보다 무거우면 안된다.* 저울에 무게추를 올릴 수 있는 모든 경우의 수* static 변수 생성하면 메모리 초과 발생.* 아래 코드에 더해서 위의 조건중에 N!*2^N을 이용해서 모든 추를 오른쪽에 놓아도 무겁지 않은 경우에 한해서 미리 계산해놓은 N!과 2^N을 이용하면 속도가 훨씬 많이 향상된다.* 아래 코드에 더해서 메모이제이션 기법을 적용하면 속도가 훨씬 향상된다.* 아직 백트래킹으로 생각하는 것이 상당히 어렵다...* 문제를 이해하고 코드로 옮기려고 하지만, 수.......

[ 알고리즘 ] 코딩 백준 7562 - 나이트의 이동 [내부링크]

백준 7562 - 나이트의 이동* 나이트의 현재위치가 주어지고 가려고 하는 위치가 주어진다.* 최소 몇 번 움직이면 가려는 위치로 이동할 수 있을까?* 기본적인 BFS를 이용해서 구현.* 현재 위치에서 갈 수 있는 모든 위치를 큐에 넣고 해당 위치가 목적지인지* 확인하는 작업을 반복.

백준 1697 - 숨바꼭질 [내부링크]

백준 1697 - 숨바꼭질* 걷는다면 x - 1 혹은 x + 1* 순간이동 한다면 2*x 위치로* +1 -1 *2 연산을 해서 숫자가 같아 지는 가장 최소의 경우.* 수빈이와 동생의 위치는 0~ 100000.* BFS를 이용해서 해결했다. ** 현재 위치를 기준으로 x-1, x+1, 2x를 BFS에 넣고 검색. 동생과 만날때까지 해당 작업 반복.

백준 1406 - 에디터 만들기 - Linked List - 시간초과 [내부링크]

* 백준 1406 - Editor 만들기* 에디터의 기능을 구현해보자* 커서를 기준으로 오른쪽 왼쪽을* 자유자재로 이동해야 하므로* List를 이용해서 만들어보자* 삭제와 추가, 이동할 때 모두 List의 size 연산을 계속해서 호출한다.* 결과는 시간초과* 다른 방법을 찾아야 한다!!

백준 1406 - 에디터 만들기 - Double Stack - [내부링크]

백준 1406 - Editor 만들기* LinkedList를 이용해서 구현을 하면 당연하단 듯이 시간초과가 나온다.* 스택을 2개 사용해야 한다고 한다.* 현재 커서를 기준으로 왼쪽과 오른쪽 두개의 스택을 운용하면 4개의 연산을 처리하는데 걸리는 시간은 매우 적다* 알고리즘적 사고를 많이 키워야겠다!!정말 간결하고 명료한 생각이다!!

Java의 기본 (상속, 접근지정자, This vs Super, 다형성, Overloading, Overriding) [내부링크]

상속"이미 만들어 진 것을 재사용해보자"하는 것!상속받고 난 후 자신만의 클래스를 작성하여 확장성 UP부모는 자신과 자식의 타입으로 생성 가능하다.자식은 부모의 타입으로 생성 불가능하다.**밑에서 더 자세히 설명.키워드 : extends자바는 단일 상속만 가능하다.ex) class A extends B, C ← 불가능만일 다중 상속을 하고 싶다면 Interface를 사용하면 된다하지만 Interface는 상속으로 안보는 사람도 있다고 한다.ex) Class A implements interA, interB ← 이런 식으로 사용 가능접근 지정자Public > Protected > Default > Privatepublic공용 어떤 클래스에서도 사용 가능.모든 접근 가능protected같은 패키지 안.......

[IT]코딩 Java의 기본( Interface, 추상 Class, Inner Class) [내부링크]

Interface 선언부만 기술하고, 구현부가 없다.규정, 약속, 설계도interface에 선언되어있는 것은 구현하는 상속받는 Class에서 모두 해줘야한다한 class에서 마치 다중 상속처럼 여러 interface 구현 가능- 완벽히 추상화된 클래스( 1.8미만, 추상메서드만 선언 가능했었다 )- 1.8 이후부터는 디폴트메서드, static 메서드의 선언이 가능해짐.인페이스 선언은 interface 키워드 이용 ** 추상클래스(Abstract)와의 차이점 : 일반 메서드는 선언이 불가능함 ( Interface ) : 다중 상속의 개념을 지원한다.( implements A, B ,C ...)인터페이스에 선언되는 모든 변수는 상수로 인식이 된다. - public static final 키워드 자동 추가 인터페이스.......

백준 1931번 - 회의실 배정하기 [내부링크]

백준 1931번 - 미팅룸 예약하기각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보는 문제종료 시간을 기준으로 정렬Comparable 을 상속받아 오버라이딩 구현종료 시간을 기준으로 정렬을 한 뒤에 가장 긴 것만 고르기때문에 탐욕(Greedy) 알고리즘을 사용한다.

[IT]코딩 Java의 기본(String, StringBuilder, StringBuffer) [내부링크]

String, StringBuilder, StringBuffer 모두 문자열을 관리하는 Class이다. 우선 String과 StringBuilder, StringBuffer로 나누어서 생각을 할 수 있다.1. StringString은 Immutable. 즉, 변경이 불가능하다. 한마디로 말하면 상수라는 소리다. String 객체는 한번 생성되면 할당된 메모리 공간에 변화가 없다. + 연산 또는 concat 메서드를 통해 String 문자열에 다른 문자열을 붙이면 기존 문자열에 새로운 문자열을 덧붙이는 개념이 아니라, 새로운 String객체를 만들고 난 후, 문자열을 저장하고, 그 객체를 참조하게 하는 형식이다. 이러한 이유로 연산이 많으면 많을수록 속도가 느려진다. 하지만 immutable 속성으로 인해 안전성이 높아.......

SWEA 7699번 - 수지의 수지맞는 여행 [내부링크]

SWEA 7699번 - 수지의 수지맞는 여행* 1행, 1열로 시작해서 R행, C열까지 있으며, 총 R*C 칸으로 이루어져 있다.* 섬의 각 칸에는 알파벳이 적혀있다. 이 알파벳은 섬의 명물이고, 같은 알파벳은 같은 명물* 자신이 있는 지점의 명물을 본 후 4방향(상, 하, 좌, 우) 중 한 방향으로 1칸 이동 후 다음 명물을 보는 행동을 반복* 같은 명물을 2번 이상 가지 않게 해서 갈 수 있는 최대 경우의 수* DFS를 이용해서 구현하는 것이 빠르다.* 처음에 BFS로 구현하려고 했다가 수렁에 빠져서 포기했다....*** BFS로 구현하는 것은 가중치가 없는 그래프에서 최단경로를 구할 때!!! 누구보다도 빠르고 정확하고 쉽게 구할 수 있다!!!* A~Z까지 26가지.......

[자바-이클립스] 이클립스에서 메서드나 클래스의 매개변수가 무엇인지 까먹었을 때 - Assist Box - [내부링크]

코딩을 하다 보면 메서드와 클래스를 호출하는 일이 많다. 그리고 호출을 하게 되면 매개변수를 넘기는 일이 비일비재하다.가끔은.. 내가 짠 클래스의 생성자에 들어가는 매개변수가 무엇인지 헷갈릴 때가 있다. 그리고 API나 다른 사람의 코드를 보면 어떤 타입이 들어가는지 모르는 경우가 있다. 보통은 메서드 위에 매개변수 상자가 나오지만, 어떠한 연유에서인지 갑자기 사라지거나 일시적으로 있고 입력을 하면 사라지는 경우도 있다.이런 경우에 사용하는 ctrl + shift + space!이클립스에서는 ctrl + space를 누르면 자동 완성을 해준다.이 ctrl + space 키를 이용해서 원하는 매개변수를 보는 것도 가능하다.아래와 같이 생성자에 들.......

[ 알고리즘 ]코딩 백준 15686 - 치킨 배달 [내부링크]

백준 15686 - 치킨 배달크기 NxN 각 칸은 빈칸, 치킨집, 일반집 셋 중 하나0 = 빈칸, 1 = 일반집, 2 = 치킨집1,1 부터 시작치킨거리 = 집에서 가장 가까운 치킨집과의 거리도시의 치킨거리 = 치킨거리의 합M개의 치킨집만 남기고 없앨 때 도시의치킨거리가 최소가 되는 경우를 구하라. ** 처음에는 조합코드 밖에서 집집마다 치킨집과 비교를 하면 되겠지하는 생각을 먼저 했었다. 그러면 전역으로 선택한 치킨집의 모든 경우의 가중치의 합을 관리해야하는 번거로움이 있어서 조합 안에서 기저조건을 만족하는 시점에 2중 for문으로 한번에 처리했다. 많이 생각하고 더 공부 해야겠다..

[ 알고리즘 ]코딩 백준 1074 - Z [내부링크]

백준 1074 - Z* 2^N x 2^N 2차원 배열을 Z모양으로 탐색.* N , R, C가 주어졌을 때 R,C 좌표를 찾기까지* 탐색수 출력하기* Divide & Conquer 이용* 분할정복을 떠올렸다면 index를 어떻게 줄지 고민해야한다! * 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양

[ 알고리즘 ]코딩 백준 1992 - 쿼드트리 [내부링크]

백준 1992 - 쿼드트리* 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드트리라는 방법이 있다.* 흰점을 나타내는0 검은 점을 나타내는 1로만 이루어진 영상(2차원배열) * 영상 모두가 0이면 압축결과 0.* 모두 1이면 압축결과 1* 0과 1이 섞여있으면 왼쪽위, 오른쪽위, 왼쪽아래, 오른쪽아래의* 4개의 영상으로 나누어 압축.* 압축 결과를 괄호를 묶어서 표현.* N은 언제나 2의 제곱수이며 1~64의 값을 가짐.* 분할 정복을 이용하여 구현하였다.* StringBuilder를 이용해 문자열 연산 수행

[ 알고리즘 ]코딩 백준 - 2493번 - 탑 [내부링크]

백준 사이트 2493번 - 탑, Laser Tower* N개의 탑을 왼 -> 오 방향으로 세움* 모든 탑에서 왼쪽을 향해 신호를 쏜다.* 예를들어 6 9 5 7 4 의 탑이라고 하면* 6과 9가 보내는 신호를 받는 탑은 없고* 5,7은 9가 4는 7이 받는다 * 즉 0 0 2 2 4 '번째' 탑이 받는다!* 각 탑이 보낸 신호를 받는 탑을 구하라* Stack을 이용해서 구현했다.* N은 1 이상 500,000 이하라는 조건이 있는데 생각보다 커서 메모리가 뻥뻥 터진다.* 입력을 받은 타워의 높이가 앞의 타워들보다 낮다면 저장할 필요없이 바로 이전 타워를 출력한다.* 입력을 받은 타워의 높이가 앞의 타워들 보다 높다면 앞의 모든 타워를 pop하고 현재 들어온 타워의 정보를 S.......

Java의 기본(숫자형, 문자형, 비트연산, 기본형) [내부링크]

—cmd—옛날 방식ex) C:\test>javac -d . HelloWorld.javajavac → java complie-d 옵션 → 현 디렉토리 밑에 HelloWorld.java 파일 내에 선언 된 package 형태로 디렉토리를 만들어 class 파일을 생성.위 작업은 이제는 eclipse에서 다 해준다.HelloWorld.java → simple name—complie—com.ssafy.HelloWorld → Full name배포할 때는 name.class를 넘겨주어야 한다!name.java를 넘기는 것은 개발자. opne source 개념. 내가 만든 거 수정해서 쓰렴 하는 것과 같은 말.Java의 기본형은 8가지!! 나머지는 참조형boolean / byte / short / int / long / float / double / char*특징 : 소문자로 시작.숫자형- int → byte 값 손실. + 에러. 형.......

Java의 기본(랜덤방식, 조건문, & - && 차이, 반복문) [내부링크]

랜덤 방식- 자바에서 랜덤한 숫자를 발생시키는 여러가지 방법.조건문 / switch문- 습관적으로 if문을 사용하지만, 조건문이 길어진다면 switch문을 사용하는 습관을 가지자.switch 구문 안에는 intager에 준하는 형만 들어갈 수 있다. *int, byte, short, char +++ (Java1.7버전부터 String지원.) —>double 지원 X.&,| vs &&, ||&, | ← 뒤에 나온 조건 모두 판단.A & B & C ,, A | B | C ← A,B,C 모두 판단&&, || ← 거짓 혹은 참의 판단이 서면 멈춤A && B && C ,, A || B || C ← A, B, C 순차 판단. 하나라도 거짓이면 뒤를 안봄.반복문for문, while / do-while문 / for-each with .......

백준 2887 - 행성 터널 [내부링크]

백준 2887 - 행성터널* 행성의 위치는 x,y,z 의 좌표로 주어짐.* 행성간 터널을 뚫는데, A(x1,y1,z1) - B(x2,y2,z2)가 주어지고* min(|x1-x2|,|y1-y2|,|z1-z2|)를 구하면 된다.* 예를들어 A(1,2,3) B(10, 2, 32) 인경우에는 y좌표가 같으므로 비용은 0이 된다.* 행성 10만개.. 좌표값 -10^9 ~ + 10^9* X좌표를 기준으로 정렬하고 Edge 추가* Y좌표를 기준으로 정렬하고 Edge 추가* Z좌표를 기준으로 정렬하고 Edge 추가* 모든 Edge를 가중치를 기준으로 오름차순 정렬* 정렬 된 Edge에 대해서 Kruskal 적용**잘못된 코드

백준 2580 - 스도쿠 채우기 [내부링크]

백준 2580번 - 스도쿠 채우기* 주어진 행렬에서 모든 칸을 규칙에 맞게 넣은 뒤 출력하기.* 빈 칸인 경우 봐야할 것. ** 가로줄에서 자신이 들어갈 숫자 찾기 ** 세로줄에서 자신이 들어갈 숫자 찾기 ** 자신이 있는 작은 9칸에서 들어갈 숫자 찾기* 3가지 검사를 마치고 나온 숫자가 존재한다면 해당 숫자를 가지고* DFS수행, BackTracking

Java 기본 (Array, BufferedReader,StringBuilder) [내부링크]

Array동일 타입의 변수를 여러개 사용하면 아래의 단점이 있다.변수 수 증가코드 길이 증가반복문 적용 불가변수의 수가 동적으로 결정되면 사용 불가--------------------------------------------------------------Array로 동일 Type 변수를 대신하면 아래 장점이 있다.변수 수 감소코드 길이 감소반복문 적용 가능변수 수가 동적으로 결정되어도 사용 가능.Array is Immutable!!최초 메모리 할당 후에 변경 불가!!개별 요소는 다른 값으로 변경 가능. 삭제 불가!!크기를 늘리거나 줄일 수 없음!!변경이 필요하면 새로 작성하는 것이 유리!!2차원 ArrayBufferedReader필터 스트림 유형주(line) 단위로 문자열 처리 기능 제공 → readLine(.......

Java 기본 (Class, Objcet, Method, 메모리) [내부링크]

Class와 Object의 특징Encapsulation (캡슐화)하나의 클래스 안에 데이터와 기능을 담아 정의, 중요 데이터나 기능을 숨기고. 사용에 필요한 기능만을 공개Inheritance (상속)기존 존재하는 객체의 속성과 기능을 상속받아 정의Polymorphism (다형성)같은 타입, 같은 기능의 호출. 다양한 효과Abstraction (추상화)현실 세계에 존재하는 객체의 주요 특징을 추출하는 과정Object시스템의 대상이 되는 모든 것.ex) 학사 관리 시스템 학생, 교사, 출결, 성적 등등구체적인 표현대상이 존재.ex) 학생 object A학생, B학생, C학생 등등Class구체적인 Object들을 분석해서 공통 내용을 추상화해서 Programming언어로 표현한 것.ex) 클래스 A &#x3D.......

Java 기본 (CRUD, 배열의삭제, 코드효율Tip) [내부링크]

CRUD 기능Java에서 데이터 처리 (CRUD)에 관한 기능을 가진 것은 Mgr ClassWeb에서는 DAO라고 부른다.DAO -> DataAccessObjectCRUD의 기능만 가진다.C - InsertR - SelectU - UpdateD - Delete배열에 요소 추가 과정1. 공간체크2. 새로운 공간 추가3. 배열의 내용을 새롭게 생성4. 기존배열을 새로운 배열로 변경** API의 기능으로 있다!!문자열 찾기배열의 요소 삭제arraycopy(원본,시작위치,복사본,시작위치,길이) 이용코드를 효율적으로 짜는 방식에 관한 TIP

백준 2606 - 새로운 바이러스 [내부링크]

백준 2606 - 새로운 바이러스* 어떤 그래프가 주어진다.* 해당 정점이 바이러스가 걸린다면 ( 이 문제에서는 1번으로 고정 )* 연결된 모든 정점이 감염된다.* 어떤 한 정점이 감염되었을 때* 그로인해 감염되는 컴퓨터의 수를 구하라* BFS로 구현