[Algorithm] 백준_덩치_7568번 (JAVA)
·
카테고리 없음
📝문제https://www.acmicpc.net/problem/7568덩치 7568티어: Silver 5💡풀이문제 유형완전탐색 걸린 시간20분 시간 복잡도O(N^2) 풀이 방법 도출N의 최대 크기가 50이므로 완전탐색을 해도 시간초과 우려가 없다.몸무게 배열 weight와 키 배열 height를 만들어주고반복문을 돌려 현재 몸무게와 키를 구하고 이에 대해 한 번 더 반복문을 돌린다.현재 몸무게와 키보다 큰 경우에만 카운트를 하고rank 배열에 현재의 등수를 넣어준다.import java.util.*;import java.io.*;class Main{ public static void main(String[] args) throws IOException { BufferedReader ..
[Algorithm] 백준_수들의 합 5_2018번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/2018수들의 합 5 2018티어: Silver 5 💡풀이문제 유형투포인터 걸린 시간거의 40분 시간 복잡도O(N) 풀이 방법 도출풀이법이 생각 안 나서 다른 사람의 풀이를 참고하였다..ㅠ완전 탐색으로 풀면 시간 초과 우려가 있어 투 포인터 알고리즘을 사용한다.start = 1, end = 1, sum = 1, count = 1로 선언 후sum sum > N 이면 start 위치를 오른쪽으로 옮겨 더 작은 수가 되도록 한다. sum -= startsum == N 이면 count 개수를 증가시키고 end 위치를 오른쪽으로 옮겨 더 큰 수가 되도록 한다. sum += end이 과정을 start import java.util.*;import j..
[Algorithm] 백준_토마토_7569번 (JAVA) 🍅
·
Algorithm
📝문제https://www.acmicpc.net/problem/7569토마토 7569티어 : Gold 5 💡풀이문제 유형너비우선 탐색 걸린시간거의 60분 시간 복잡도O(H×N×M) 풀이 방법 도출처음에 dfs로 접근하다가 최솟값 구하는 문제라 bfs로 방향을 틀었다. dfs로 30분 날린듯tomato = new int[H][N][M]; 토마토가 들어있는 3차원 배열을 선언하고 입력값을 차례대로 넣어주었다.이때 모든 토마토가 익어있는 상황을 확인하기 위해 boolean completed = true; 변수를 활용하였다. 0을 반견하면 false로 바꿔주고 completed = true면 조기 종료 해주었다.이후 익은 토마토를 발견하면 토마토의 위치와 day를 큐에 넣어준다.bfs 함수를 선언하여 익은 ..
[CS] 데이터 베이스_이상현상, 정규화
·
CS/데이터베이스
1️⃣ 이상 현상(삽입 이상, 갱신 이상, 삭제 이상)🚀삽입 이상(Insertion anomalies)1. 중복 데이터 발생empl_idempl_namedept_iddept_namedept_leader_id1WINTER1001DEV12KARINA1001DEV1 dept와 관련된 데이터가 중복으로 들어가기 때문에데이터 중복으로 인한 저장 공간이 낭비되고dept_name은 고유한 값인데 실수로 DEB가 들어간다면 데이터 불일치가 생긴다.2. null 값을 많이 쓰게 되는 문제아직 부서 배치를 받지 않은 사원이라면empl_idempl_namedept_iddept_namedept_leader_id1WINTER1001DEV12KARINA1001DEV13WONYOUNGnullnullnull부서 정보에 null이 ..
[CS] 데이터베이스_인덱스
·
CS/데이터베이스
1️⃣  인덱스의 개념과 설정 기준 이해인덱스를 쓰는 이유?조건을 만족하는 튜플(들)을 빠르게 조회하기 위해빠르게 정렬하거나 그룹핑 하기 위해PLAYER 테이블idnameteam_idbacknumber............ 테이블 생성 후 인덱스 걸기CREATE INDEX player_name_idx ON player (name);name 어트리뷰트에 인덱스 걸기 CREATE UNIQUE INDEX team_id_backnumber_idx On player(team_id, backnumber); 테이블 생성 시 인덱스 걸기CREATE TABLE player (id INT PRIMARY KEY,name VARCHAR(20) NOT NULL,team_id INT,backnumber INT,INDEX play..
[Algorithm] 백준_대회 or 인턴_2875번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/2875 💡풀이며칠 전에 풀려고 시도했다가 아이디어가 안 떠올라 포기했던 문제를 다시 도전해보았다.내 아이디어는 다음과 같다. 1)대회에 나가는 여학생을 변수 a로,대회에 나가는 남학생을 변수 b로 잡는다. 2)전체 여학생 인원이 N이고전체 남학생 인원이 M이므로(N-a)+(M-b) 는 인턴을 나가는 학생 수보다 같거나 커야한다. 3) 만약 N-a가 2보다 크거나 같고 M-b가 1보다 크거나 같으면 대회에 나가는 학생의 수를 추가해줄 수 있다.a = a + 2b = b + 1 4) 3번의 조건식에 맞지않는다면 대회에 나가려는 학생에 비해 나갈 수 있는 학생이 적기 때문에 팀을 꾸릴 수 없으므로 반복문을 빠져나온다. 전체풀이import ja..
[CS] 데이터베이스_SQL
·
CS/데이터베이스
📌SQL의 정의와 기본 구문 이해(DDL/DML/DCL)SQL(Structured Query Language)은 관계형 데이터베이스(RDBMS)에서 데이터를 관리하고 조작하기 위한 언어이다.SQL은 다음과 같이 세 가지 주요 범주로 나뉜다.1️⃣ DDL (Data Definition Language, 데이터 정의어)데이터베이스 구조(스키마, 테이블, 인덱스 등)를 정의하고 변경하는 명령어주요 명령어:CREATE : 데이터베이스 객체(테이블, 인덱스 등) 생성ALTER : 기존 객체의 구조 변경DROP : 객체 삭제TRUNCATE : 테이블의 모든 데이터를 삭제(구조는 유지)-- 데이터베이스 생성CREATE DATABASE my_database;-- 테이블 생성CREATE TABLE users ( id ..
[Algorithm] 백준_트리의 지름_1167번 (JAVA)
·
Algorithm
📝문제 💡풀이예제의 입력을 그림으로 표현하면 아래와 같다.각 정점에 대해 가장 긴 거리 경로를 구하면1-3-4-5 :112-4-3-1 :93-4-5 :94-5 :6 5-4-3-1 :11 위 결과의 공통 점은 1또는 5가 경로에 포함 된다는 것이다.트리의 지름은 1에서 5의 거리인데 어떤 정점에서 구해도 1또는 5를 포함해야 가장 긴 경로가 나온다. 이러한 결과로 이 문제의 아이디어는 다음과 같이 구할 수 있다.1. 임의의 정점에서 가장 긴 거리의 정점을 찾는다. 2. 1에서 찾은 정점을 기준으로 한번 더 가장 긴 거리의 정점을 찾는다. dfs를 두번 호출하여 정답을 구할 수 있다. 전체풀이import java.util.*;import java.io.*;class Main{ static boole..
[Algorithm] 백준_다리 만들기_2164번 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/2146이 문제는 차근차근 풀어가면 엄청 어렵진않다 중간에 실수만 안 하면 ..?조건이 많아 다소 복잡해보일뿐 알고리즘 자체는 어렵지않다,, 1) 섬을 구분해준다. 섬 구분은 dfs로 구현하였다.입력값이 아래와 같을 때 서로 다른 섬을 숫자로 구분해주었다. 2) 해안선의 위치를 큐에 넣어준다.이 문제는 해안선으로 시작해 다른 육지까지의 최소 거리를 구하는 것이므로해안선을 찾아줘야한다. (상하좌우에 0이 있는지 확인)if(!isCoastLine && island[nx][ny] == 0){ //해안선 위치를 큐에 넣음 isCoastLine = true; coastline.add(new int[] {n,m});} 3) 찾은 해안선들을 기준으로..
99클럽 코테 스터디 5기 후기🚀
·
후기
1. 참여 계기개발자 취준생이라면 필수 과제인 알고리즘 공부를 혼자 하기엔 의욕이 안 생기고 매일 어떤 문제를 풀어야 될지 고민이 됐습니다. 그러던 중 백준 사이트에서 광고 중인 99 클럽 코테 스터디를 알게 되었고 해당 과정은 30,000원이라는 참가비가 필요하지만 열심히 참여한다면 보상이 오는 페이백 방식이 맘에 들었습니다.😋 2. 참여 경험한 달간 평일 11시에 문제가 나오고 해당 문제를 풀고 난 후 인증샷과 TIL을 제출하면 되는 방식입니다.매주 월요일마다 특강이 있어 해당 특강 출석 인증을 하면 혜택이 있으니 출석 인증은 챙겨야 합니다!1) 문제 풀이 후 인증, 2) til 제출, 3) 특강 출석 인증을 성실히 한다면 30,000원 네이버 페이 혜택도 있어서 확실한 동기부여가 되었습니다. 💚..