전체 글

전체 글

    [Java/자바 백준 17143] 낚시왕

    풀이 빡구현 문제 처음에 상어들을 2차원 리스트에 넣어줬습니다. 1~M까지 넣어주고 상어들을 넣어주고 map에는 상어들의 인덱스 값을 띄웠습니다 !! 서있는 y위치를 증가시키면서 첫째 find를 구현해서 땅과 가장 가까운 상어를 잡아 total에 더해주고, 해당 위치는 0으로 바꿔주었고 해당 인덱스 상어의 x값을 -1로 초기화 했습니다. 이유는 상어들을 이동시킬때 잡아먹힌 앤지 아닌지 판별하려고 했습니다. 둘째 상어들 이동단계에서 map을 우선 0으로 초기화 시키구 잡히지 않은 상어들을 이동시켰습니다. 조건에 따라 벽에 부딪힌다면, 반대쪽으로 가게 구현했습니다. map이 0이라면 해당 상어 인덱스를 map에 넣어주고 0이 아니라면 해당 위치에 있는 상어 크기와 현재 상어 크기의 값을 비교해주었습니다. i..

    [Java/자바 백준 16235] 나무 재테크

    풀이 문제 이해가 가장 중요한거 같습니다. 말이 좀 헷갈리게 해서 첫째줄은 N,M,K 이고 N은 맵의 크기, M은 나무 갯수, K는 몇년동안 진행하는지입니다. 그후 N개만큼 겨울에 양분이 추가되는 숫자가 나오구, 그다음 M개만큼 Tree에 x,y,age에 대한 정보가 나옵니다. 기본 map에는 전부 양분이 5인 디폴트 값이 있습니다. 나이가 낮은 나무들이 먼저 나올 수 있게 pq를 이용했습니다. 봄 ) 양분이 충분할 때와 충분하지 않은 경우로 나누어서 충분하다면 map[x][y]에 age만큼 감소하고, age를 +1씩 해주었습니다. 이때 tmp 큐에 넣어주었는데, 왜냐하면 tree가 pq로 만들어줬기 때문에 tree에 넣어준다면 나이가 어린 나무가 하나 들어가서 정렬이 바뀔 수도 있기 때문입니다. 충분하..

    [Java/자바 백준 21610] 마법사 상어와 비바라기

    풀이 단계별로 구현해주었습니다. 조건이 까다롭지도 않고 차근차근 읽어보면서 풀어보시는게 좋을거같아요. 1) 처음 구름에 위치는 고정되었으므로 cloud큐에 넣어주고 2) 구름을 옮겨주는 단계에서 오류가 발생하긴 했는데, 처음엔 s만큼 전부 도는 시간을 줄이려고 s/N을 해줬는데 대각선에서 틀리더라구요 그래서 s만큼 for문 돌렸습니다. 3) 대각선에 해당하는 1,3,5,7 에 해당하는 x,y를 탐색해주어서 0이 아니면 +1 씩 해주고 4) 다시 구름을 만들었을때 구름이 있던 장소를 담아두었던 check에서 false인 값과 && 2 이상인 것들만 담았습니다. import java.io.*; import java.util.*; public class Main { static int[] dx = {0,-1,..

    [Java/자바 백준 16234] 인구이동

    풀이 골드 5인데 비교적 더 쉬운거 같습니다. 조건도 쉬운 편이구 BFS를 이용를 이용해서 check가 false 일 경우 탐색을 시작해서 조건 사이에 있다면 queue에 넣어주는 방식으로 탐색을 진행했습니다. tmp에 큐를 임시로 저장해서 해당하는 값들의 x,y 값들을 전부 집어넣어주고 cnt가 1이 아니라면 그 값들을 모두 꺼내어 인구 이동의 평균값을 구해줬습니다. import java.io.*; import java.util.*; public class Main { static int N,R,C, union ,res,cur_x,cur_y; static int[][] map; static int[] dx = {1,-1,0,0}; static int[] dy = {0,0,1,-1}; static boo..

    SQL 조인(JOIN)의 개념과 종류

    조인(JOIN)이란? DB에서 자주 사용되는 조인이란 개념은 무엇일까요? 조인은 '어울리다'라는 의미를 가지고 있는데 이 말대로, 데이터베이스에서 테이블간의 결합(어울림)을 이야기합니다. 즉, 두개 이상의 테이블에 대해서 결합하여 나타낼 때 조인이라는 것을 이용합니다. 물론 셀프조인에서는 사실 하나의 테이블을 다루는 것입니다. 이에 대해서는 뒤에서 다시 이야기해보겠습니다. insert into employee (empNo, empName, job, manager, hireDate, salary, commission) values (1015, '문정진', '대리', 1001, '2009-11-11', 350, 50); select * from employee; select * from department;..

    DBMS 키의 개념 및 종류

    키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. *튜플 : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다. 파일 구조에서는 레코드와 같은 개념, 튜플의 수 = 카디널리티(Cardinality) = 기수 = 대응수 릴레이션 학번 주민번호 성명 성별 1001 810429-1231457 김형석 남 1002 800504-1546781 김현천 남 1002 811216-2547842 류기선 여 1003 910322-1233445 홍영선 여 릴레이션 학번 과목명 1001 영어 1001 전산 1002 영어 1003 수학 1004 (참조무결성) 영어 1004 (참조무결성) 전산 1. 후보키 (Ca..

    NoSQL 저장방식에 따른 분류

    간단하게 NoSQL이란 ? Not Only SQL의 의 약자로 기존 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로 수평적 확장성이 있다 RDBMS 가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면 NoSQL은 클라우드 환경에 맞는 저장 기술이다. 나오게된 배경 이전까지의 컴퓨팅 시스템은 기업 업무를 자동화하고 효율화 하는데 그 목적이 있었고 복잡한 데이터를 저장하거나 그 데이터간의 관계를 정의하고 분석하는데 최적화되어 있었다. 물론 그 과정에서 생성되는 데이터의 양은 한계를 가지고 있었다. 그러나 인터넷의 발전과 함께 특정 고객이 아닌 전세계의 사람들을 대상으로 하는 형태의 서비스가 발전..

    CAP 이론

    CAP 이론이란? 분산 시스템은 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition tolerance) 3가지중 최대 2가지만 만족할 수 있다는 이론이다. 시스템 특성에 따라 RDBMS,NoSQL 등 어떤 데이터베이스를 사용해야하는지 CAP 필요성에 따라 분석하고 데이터베이스를 선택해야합니다. 분산 시스템이란 일반적으로 웹 서버와 DB서버를 동일한 시스템에 설치하지는 않을 것입니다. 이와 같이 "단일 시스템"이 아닌 다중 시스템 환경에서 서버가 여러 곳으로 분산되어 소프트웨어가 동작하는 것을 분산 컴퓨터(팅)이라고 한다. 용어정리 일관성(Consistency) 일관성은 동시성, 동일성이라고도 하며 어떤 데이터에 대해서 일관적인 데이터를 보증한다는 것을 의미한다..

    대칭키 암호 vs 공개키 암호

    대칭키(비밀키) - 암호화,복호화 할 때 사용하는 키가 동일(대칭)한 경우 어떠한 정보가 대칭키를 통해 암호화 되었더라면, 똑같은 키를 갖고 있는 사용자가 아니면 해당 정보를 확인 할 수 없습니다. 따라서, 암호화 된 정보를 전달하고 확인하기 위해서는 송,수신자 둘 다 똑같은 키를 가지고 있어야합니다. 대칭키 암호화 방식의 핵심은 키를 안전하게 교환 하는것! 예시 부산에 살고있는 철수는 A라는 열쇠로만 열 수 있는 보물상자를 서울에 있는 영희에게 안전하게 전달 하고자 합니다. 그렇다면 철수는 보물상자를 영희에게 보내는 것은 물론이고, 이 상자를 열 수 있는 A열쇠 또한 안전하게 영희에게 전달해야합니다. 만약 보물상자와 함께 열쇠를 담아 보낸다면, 중간에 다른사람이 가로채 상자를 열어볼 수 있게 됩니다. ..

    [Java/자바 백준 14999] 주사위 굴리기

    풀이 풀이에 앞서 최근에 코테를 봤는데 이 문제 비슷한게 나왔습니다. 처음으로 코테를 가서 풀어서 다른 사람 키보드 때문에 멘탈도 살살 털리구 집중을 못했네요 ㅜㅜ 핵심은 dice 리스트에 바닥 동 서 남 북 위 순으로 현재 값을 계속 바꿔주면서 담아주는 방법을 쓰겠습니다. 하나를 예로 들자면, 동쪽으로 굴리자면 바닥에 있던 0번째 인덱스 값이 서쪽으로 가서 2번째로, 동쪽에 있던 1번째 인덱스 값이 바닥으로 가서 0번째로, 서쪽에 있던 2번째 인덱스 값이 위쪽으로 가서 5번째로, 남쪽에 있던 3번째 인덱스 값은 그대로 북쪽에 있던 4번째 인덱스 값도 그대로, 마지막으로 위쪽에 있던 5번째 인덱스 값은 동으로 이동하게 됩니다. 나머지 서 남 북으로 이동할 때에 맞춰 인덱스 값을 변경해주고 현재 위치에 맵..