알고리즘

알고리즘/백준

[BFS] 백준 1326번 폴짝폴짝 - JAVA

조금 응용된 BFS 문제이다. 이름은 귀엽지만, 문제는 귀엽지 않았다 ㅡ ㅡ 1. 출처 https://www.acmicpc.net/problem/1326 1326번: 폴짝폴짝 첫째 줄에 징검다리의 개수 N(1≤N≤10,000)이 주어지고, 이어서 각 징검다리에 쓰여 있는 N개의 정수가 주어진다. 그 다음 줄에는 N보다 작거나 같은 자연수 a, b가 주어지는 데, 이는 개구리가 a번 www.acmicpc.net N개의 돌이 주어지고, 돌 위에는 점프할 수 있는 X배수가 써져있음 X*1, X*2, X*3... 이런식으로 1~N 돌 안에서 이동할 수 있음 목적지에 도착하기 위해 밟아야 하는 최소의 돌 수를 도출 도착할 수 없다면 -1 2. 설계 문제를 보면 출발지 < 도착지라는 보장이 없다. 때문에 우리는 출..

알고리즘/SWEA

1767. 프로세서 연결하기 [#Permutation]

만약 이러면...? 만약 이러면?...에 빠졌던 문제 ㅋㅋㅋ 한 core가 선을 뻗어있는 상태에서 다른 core가 침범하는 방향이 답이면 이전 core의 선을 치워야하나?... 그 답은 아래에 ^^... 1. 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 테두리 부근에 core가 있다면 이미 전기가 연결된 것이다. core들은 4방으로 선을 뻗을 수 있다. 최대한 많은 core의 선을 연결하고, 최소의 core 선 값을 도출해라 2. 설계..

알고리즘/프로그래머스

[JOIN] SQL 고득점 키트 문제 풀이 모음

풀 때마다 업데이트 할 예정 [LV2] 1. 조건에 맞는 도서와 저자 리스트 출력하기 SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') as PUBLISHED_DATE FROM BOOK b JOIN AUTHOR a ON b.AUTHOR_ID = a.AUTHOR_ID Where b.CATEGORY like '경제' ORDER BY b.PUBLISHED_DATE ASC; JOIN의 종류는 (JOIN(이너조인), LEFT OUTER JOIN(왼쪽 테이블 기준), RIGHT OUTER JOIN(오른쪽 테이블 기준), FULL OUTER JOIN(전체 테이블 대상)) 4가지이다. %Y = 2024 %y = 24 %M = January %m =..

알고리즘/백준

[BFS] 백준 2251번 물통 - JAVA

처음에는 '물통에 있는 물을 어떻게 규칙적으로 움직이지?' 라는 생각에 빠졌다. c->b, b->a 그 다음에는?... 흠... 설계가 떠오르지 않으니 당연히 알고리즘도 떠오르지 않았다 ㅋㅋ 1. 출처 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net A, B, C 물통 3개가 있음, 최대 200리터까지 올 수 있음 처음에는 C 물통이 가득 차있음 물통에 물을 이리저리 옮기다가 A가 0일 때 C에 올 수 있는 물의 리터를 오름차순으로 출력 2. 설계 설계는 알고나면 간단했다. 현재 A, B,..

알고리즘/이론

자바에서 정렬하기 4가지 방법

백준에서 강의실 배정 문제를 풀다가 sort가 되는 원리를 잘 이해 못하고 있다보니 정렬이 잘되었는지 확인하기 위해 헛된 시간을 쏟고 있다는 것을 깨달았다. 깨달았으면? 공부를 해야지! 1. Arrays.sort() 배열을 이용할 때는 Arrays.sort()를 이용한다. Arrays.sort()는 정렬 방식이 DualPivotQuickSort이다. 2가지 포인터를 이용해 비교하는 퀵소트로 정렬한다. 이런 이유로 시간 복잡도는 평균 O(n log n)이지만 최악의 경우에는 O(n^2)까지 나올 수 있다. 그래서 정렬할 일이 생기면 기본 Collections.sort() 먼저 생각하기 나름이다. import java.util.*; import java.io.*; class Main { public stat..

알고리즘/백준

[DP] 백준 2229번 조짜기 - JAVA

구현문제처럼 풀었다가 맥도 못추린 문제... 싸피 때 양교수님께선 항상 말씀하셨지... "코드가 복잡하다는 느낌이 들면 아 내가 잘못하고 있구나" 항상 생각할 것... 2번의 불발된 시도 끝에 답안을 찾아보았다. 내가 가장 도움을 느낀 블로그는 이거다! https://yoggaebi.tistory.com/46 [백준, DP, JAVA] P.2299 조짜기 1. 아이디어 1. 입력값을 받을 때마다 해당 번째 위치에서 1번째까지 반복하며 조를 만들면서 최적의 값을 비교하여 가장 좋은 값을 선택 (1)우선 dp[0] = 0, dp[1] = 0으로 초기화 해줍니다. 0번째와 1 yoggaebi.tistory.com 글 자체는 이해가 되지 않았는데, 코드를 보며 한땀한땀 하다보니 이해가 팍 갔다! 1. 출처 ht..

알고리즘/백준

[그리디] 백준 15903번 카드 합체 놀이 - JAVA

왜 Arrays.sort를 계속 써도 시간초과가 나지 않는지 의문이었던 문제... 1. 출처 https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net N개의 카드가 주어짐 2장의 카드를 더한 값을 2장의 카드에 적용 == 카드합체 M번 카드 합체를 진행했을 때 모든 카드의 합이 가장 적게 나올 수 있는 경우를 구할 것 2. 설계 1. 타입은 long으로 카드 수는 최대 1000개가 나올 수 있고, 카드에 적힌 수는 ..

알고리즘/백준

[BFS] 백준 9328번 열쇠 - JAVA

무려 4트만에 풀린 문제 ㅠㅠ 항상 밑그림이 끝나면 바로 코드를 짜는 버릇이 있는데, 예외 케이스를 최대한 많이 찾은 후 코드 설계를 해야한다는 게 너무 어렵다 ㅠ 1. 설계 https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 문서를 최대한 많이 찾으면 되는 문제 테스트케이스, 지도의 크기, 지도(빈공간, 문, 열쇠, 문서 위치), 내가 가진 열쇠들이 주어짐 상근이는 지도 밖에 있다가 지도 테두리에 들어올 수 있는 공간이 있으면 그 쪽으로 지도에 들어올 수 있..