ALL
[BOJ/Python] 16173_점프왕 쩰리 (Small) || DFS
16173번: 점프왕 쩰리 (Small)쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다.www.acmicpc.net문제 설명더보기‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다.‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다.‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다.‘쩰리’가 이동..
[Git] Git Branch 전략 || Github Flow vs. Git Flow vs. GitLab Flow
❕ Branch가지를 뻗어나가듯이, 다른 작업(브랜치)의 영향을 받지 않고 독립적으로 작업을 진행할 수 있는 공간이다. “독립적”이라는 특징을 가지고 있기 때문에 기능 구현 & 오류 수정 등 다양한 작업이 동시에 진행될 수 있다. ( master/main 브랜치 : 기본 브랜치 ) ❕ Branch 전략여러 명의 개발자가 하나의 저장소를 가지고 협업하는 환경에서, 효율적으로 관리하기 위해 각 브랜치에 대한 역할을 설정하고, 규칙을 정하는 것 등을 의미한다.어느 브랜치가 가장 최신인가어디서부터 끌어와서 개발을 시작해야 하는가어디로 push해야하는가등등의 상황을 줄이고자 사용된다.📌Github FlowGithub Flow는 Git Flow의 브랜치 전략이 매우 복잡하고 적용하기 힘들기 때문에 생기게 된 브랜치..
[Algorithm] DFS와 BFS || Depth-First & Breadth-First Search
❕ 인접 행렬 인접 행렬은(Adjacency Matrix)로 2차원 배열을 이용하여 그래프의 연결 관계를 표현하는 방식이다. INF = 999999999 graph = [ [0, 7, 5], [7, 0, INF], [5, INF, 0] ] print(graph) ❕ 인접 리스트(Adjacency List) 리스트로 그래프의 연결 관계 표현하는 방식 graph = [ [] for _ in range(3)] # 노드와 거리 graph[0].append((1, 7)) graph[0].append((2, 5)) graph[1].append((0, 7)) graph[2].append((0, 5)) print(graph) 메모리 : 인접 리스트 win 속도 : 인접 행렬 win 📌DFS (스택) DFS(Depth-..
[BOJ/Java] 23854_The Battle of Giants || Greedy
23854번: The Battle of GiantsThe famous programming contest organizer decided to hold competition for champions "The Battle of Giants". There are two teams competing in the battle. Several matches are organized for the competition. Each match can end with a win for one of the teams, owww.acmicpc.net문제 설명더보기The famous programming contest organizer decided to hold competition for champions "The Bat..
[BOJ/Python] 23854_The Battle of Giants || Greedy
23854번: The Battle of GiantsThe famous programming contest organizer decided to hold competition for champions "The Battle of Giants". There are two teams competing in the battle. Several matches are organized for the competition. Each match can end with a win for one of the teams, owww.acmicpc.net문제 설명더보기The famous programming contest organizer decided to hold competition for champions "The Bat..
[Java] 오버로딩(Overloading) vs. 오버라이딩(Overriding)
오버로딩오버로딩(Overloading)이란, 한 클래스 내에 이름이 동일한 메서드를 여러 개 작성하는 것이다. 메서드의 이름이 동일해야 한다. 매개변수의 개수나 타입이 달라야 한다. 메서드의 리턴 타입, 접근 지정자는 관계 없다. EX 1)class OverloadingExample { public int getSum(int x, int y) { return x + y; } public int getSum(int x, int y, int z) { return x + y + z; } }getSum으로 이름이 동일한 메소드 2개가 있다. 이 경우에는 메서드의 이름이 동일하고, 매개 변수의 개수가 2개, 3개로 다르기 때문에 오버로딩이 정상적으로 이루어진다. EX 2)class OverloadingExampl..
[BOJ/Java] 2748_피보나치 수 2 || Dynamic Programing
2748번: 피보나치 수 2피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net문제 설명더보기피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.n=17일때 까지 피보나치 수를 써보면 다음과 같다.0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597n이 주어졌을..
[BOJ/Python] 2747_피보나치 수 || 구현(Implementation)
2747번: 피보나치 수피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net문제 설명더보기피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.n=17일때 까지 피보나치 수를 써보면 다음과 같다.0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597n이 주어졌을 때..
[Algorithm] DP(Dynamic Programming), 동적 계획법
다이나믹 프로그래밍(Dynamic Programming)은 동적 계획법이라고도 불린다. 이 알고리즘은 똑같은 연산을 계속 반복하지 않고, 한 번의 풀이만으로 해결하고자 하는 알고리즘이다. 큰 문제 하나를 여러 개의 작은 문제로 나누어서 해결하고자 하는 방법이다. ❗ 분할 정복 vs. 다이나믹 프로그래밍 둘의 공통점은 큰 문제 하나를 여러 개의 작은 문제로 나누어서 해결한다는 것이다. 분할 정복과 다이나믹 프로그래밍의 차이점은 DP의 경우, 나누어진 부분 문제가 중복되기 때문에, 재활용할 수 있다는 것이다. 분할 정복의 경우, 나누어진 부분 문제가 중복되지 않는다. ❗ 탑다운(Top-Down) vs. 바텀업(Bottom-Up) 탑다운 방식은 큰 문제를 해결하기 위해서 작은 문제를 호출하며 풀어나가는 방식 ..
[SQLD] 제 45회 SQL 개발자 시험 합격 후기
1. 시험 일정https://www.dataq.or.kr/www/main.do 데이터자격시험카드결제/계좌이체 환불 환불 요청시 즉시환불www.dataq.or.krSQL 개발자(SQLD)를 찾아 접수했다. 미리 가장 가까운 시험장을 찾아두었고 그에 맞게 미리 로그인과 개인 정보 및 사진을 입력해두고 접수했다 원래는 일정 때문에 45회(5월 28일) 시험을 보지 않고 그 다음 회 시험을 보려 그랬다. 그러나 그 다음 시험 일정이 9월이었기에, 환불을 하려다가 그만두고 일정을 조금만 미루게 되었다. SQLD는 2과목으로 이루어져있으며, 1과목은 10문제, 2과목은 40문제로 총 50문제이다. 1시간 30분의 시간 내로 풀어 각 과목의 40점 이상을 받아야 하며, 총점 기준 60점 이상이어야 한다.2. SQLD..