Study(진행중)/항해99
-
99클럽 코테 스터디 36일차 TIL + 돌 게임(백준)Study(진행중)/항해99 2024. 8. 27. 01:05
오늘의 학습 키워드 - 알고리즘공부한 내용 본인의 언어로 정리하기https://www.acmicpc.net/problem/9655아이디어를 이용해 푸는 문제였다. 풀이 과정은 다음과 같다.1. 돌이 1개라면 상근이가 무조건 이긴다.2. 돌이 2개라면 창영이가 무조건 이긴다.3. 돌이 3개라면 상근이가 무조건 이긴다.4. 돌이 4개라면 상근이가 1개를 가져가면 3번으로, 3개를 가져가면 1번으로 가므로 창영이가 무조건 이긴다.5. 돌이 5개라면 상근이가 1개를 가져가면 4번으로, 3개를 가져가면2번으로 가므로 상근이가 무조건 이긴다.2n-1. 돌이 2n-1개라면 상근이가 무조건 이긴다2n. 돌이 2n개라면 창영이가 무조건 이긴다. 라는 점화식으로 풀었다.풀이는 다음과 같다.import java.util..
-
99클럽 코테 스터디 35일차 TIL + 표 병합(프로그래머스)Study(진행중)/항해99 2024. 8. 26. 00:16
오늘의 학습 키워드 - 구현 - union-find공부한 내용 본인의 언어로 정리하기https://school.programmers.co.kr/learn/courses/30/lessons/150366여러 구현 방법이 있겠지만, union-find를 활용한 문제를 풀었따. 풀이 과정은 다음과 같다.1. UPDATE r c value- r행c열의 부모를 find 연산으로 찾은 뒤 update 2. UPDATE value1 value2- 모든 셀을 돌며 value1과 동일한 값들을 value2로 변경 3. MERGE r1 c1 r2 c2- r1, c1의 부모와 r2 c2의 부모를 find 연산으로 찾은 뒤 union(r1c1, r2c2) 4. UNMERGE r c- r c의 부모를 find 연산으로 찾..
-
99클럽 코테 스터디 34일차 TIL / 여행 경로(프로그래머스)Study(진행중)/항해99 2024. 8. 25. 02:26
오늘의 학습 키워드 - 알고리즘 - 구현 - dfs공부한 내용 본인의 언어로 정리하기https://school.programmers.co.kr/learn/courses/30/lessons/43164조금 까다롭게 문자열을 다뤄야 하는 dfs 문제를 풀었다. 풀이 과정은 다음과 같다.1. 티켓을 모두 사용해야 하므로 dfs에서 방문 처리는 티켓의 인덱스로 사용2. dfs 로직을 돌며 만약 깊이가 티켓과 동일하다면 해당 여행 경로를 list에 추가3. 알파벳 순으로 가장 먼저 나오는 경로를 사용해야 하므로 리스트를 정렬하여 0번째 인덱스 값 반환 풀이는 다음과 같다.import java.util.*;class Solution { int ticketLen; String[][] tic..
-
99클럽 코테 스터디 33일차 TIL / 단어 변환(프로그래머스)Study(진행중)/항해99 2024. 8. 24. 02:37
오늘의 학습 키워드 - 알고리즘 - 구현 - DFS공부한 내용 본인의 언어로 정리하기https://school.programmers.co.kr/learn/courses/30/lessons/43163문자열들이 주어졌을 때 처음 문자열에서 한 글자 씩 변경하여 제공된 다른 문자열로 바꾸고,이 과정을 목표 문자열까지 반복하는 문제이다. 풀이 과정은 다음과 같다.1. 모든 문자열들을 문자 배열(char[])로 변경한다2. 문자들에 대해 비교하며 dfs 과정을 진행한다 풀이는 다음과 같다.import java.util.*;class Solution { String[] words; char[][] wordChar; boolean[] visit; int answer ..
-
99클럽 코테 스터디 32일차 TIL / 아이템 줍기(프로그래머스)Study(진행중)/항해99 2024. 8. 22. 21:43
오늘의 학습 키워드 - 알고리즘 - 구현 - bfs 공부한 내용 본인의 언어로 정리하기https://school.programmers.co.kr/learn/courses/30/lessons/87694좌표를 2배로 늘리는 아이디어를 떠올리는게 까다로웠던 bfs 문제를 풀었다.아이디어만 떠올리면 이후에는 풀만했던 것 같다. 풀이 과정은 다음과 같다.1. 좌표를 2배로 늘림2. 사각형의 범위를 모두 1로 채움3. 사각형의 내부를 모두 0으로 바꿈4. bfs를 통해 1인 경로로만 최단 경로 탐색(1인 경로 = 문제 조건에서의 경로) 풀이는 다음과 같다.import java.util.*;class Solution { public int solution(int[][] rectangles, ..
-
99클럽 코테 스터디 31일차 TIL / 네트워크(프로그래머스)Study(진행중)/항해99 2024. 8. 21. 20:24
오늘의 학습 키워드 - 알고리즘 - 그래프 탐색 - 유니온-파인드공부한 내용 본인의 언어로 정리하기https://school.programmers.co.kr/learn/courses/30/lessons/43162유니온 파인드 + 그래프 탐색 알고리즘이 합쳐진 문제를 풀었다.아이디어가 바로 떠올라서 금방 풀었다. 풀이 과정은 다음과 같다.1. union-find 코드 작성1 - 1. union(a, b) : a와 b집합이 있을때 두 집합을 합치는 연산1 - 2. find(a) : a집합의 부모는 누구인지 확인하는 연산2. 제공된 그래프를 반복문을 돌며 연결되었다면 union2 - 1. 이 때 computers[i][j] = computers[j][i]이므로 반복문을 돌 때 아래와 같은 범위만 계..
-
99클럽 코테 스터디 30일차 TIL / 잃어버린괄호(백준)Study(진행중)/항해99 2024. 8. 20. 23:32
오늘의 학습 키워드 - 알고리즘 - 그리디공부한 내용 본인의 언어로 정리하기https://www.acmicpc.net/problem/1541그리디 알고리즘을 이용한 문제를 풀었다. 아이디어가 가장 어려웠지만 아이디어를 떠올린 이후로는 풀 만 했다. 풀이 과정은 다음과 같다.1. '-'를 기준으로 문자열 파싱2. 파싱된 문자열들을 '+'를 기준으로 파싱 후 모두 합산2 - 1. 그러면 모든 덧셈 연산은 완료된 상태ex) 10 + 20 - 30 + 40 -> 30 - 703. 위 상태에서 첫 번째 숫자를 제외한 모든 숫자들을 빼주면 최소값 풀이는 다음과 같다.import java.util.*;import java.io.*;public class Main { static StringTokenize..
-
99클럽 코테 스터디 29일차 TIL / MongoDB, Postgres, MariaDB 차이점Study(진행중)/항해99 2024. 8. 19. 21:11
오늘의 학습 키워드 - CS공부한 내용 본인의 언어로 정리하기MongoDB / Postgres, MariaDB 차이 요약MongoDBNoSQL 문서 지향 데이터베이스로, 유연한 스키마와 수평적 확장을 지원하며, 비정형 데이터 처리에 적합MariaDBMySQL의 포크 버전인 관계형 데이터베이스로, 고정된 스키마와 ACID 트랜잭션을 지원하며, 웹 애플리케이션이나 전통적인 관계형 데이터 관리에 적합PostgreSQL고급 기능을 갖춘 관계형 데이터베이스로, ACID 트랜잭션, 복잡한 쿼리 처리, 다양한 확장 기능 등을 제공하며, 엔터프라이즈급 애플리케이션에 적합1. 데이터 모델MongoDBNoSQL DB, 문서 지향형DB데이터를 JSON 형식의 문서로 저장, 컬렉션(=테이블)에 여러 문서 저장데이터는 키-..