본문 바로가기

전체 글

[JAVA][백준 2234][BFS][비트마스킹] 성곽 - 컴도리돌이 문제에 대한 대략적인 설명은 다음 링크에 적어놨습니다. ㅎㅎㅎ [Python][백준 2234][BFS] 성곽 - 컴도리돌이 풀이 과정 본 문제는 전형적인 BFS문제이다. 왜냐하면 연결되어 있는 방의 개수를 물어봤기 때문이다. 부가적으로 특이한 요소를 첨가하였다. 각 좌표들 간에 연결되었는지를 15 이하의 값으로 comdolidol-i.tistory.com 해당 링크는 파이썬으로 풀어서 혹시 이해가 안되시는 분을 위해 주석을 달아놨습니다. 🥲 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int n,m; static int [][] arr; static .. 더보기
[JAVA][백준 2122][그리디 정렬] 센서 - 컴도리돌이 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 문제 설명은 밑에 링크를 타시고 보시면 됩니다. 😶‍🌫️ [Python][백준 2212][정렬][그리디] 센서 - 컴도리돌이 풀이과정 해당 문제는 좌표를 단순히 정렬시켜서 센서들 간의 거리를 저장하고 정렬하여 n-k까지 합을 구하면 된다. 여기서 n-k까지 합을 구하는 이유를 물어본다면,, 문제를 그리면서 푸는 것을 comdolidol-i.tistory.com import java.io.BufferedReader; import java... 더보기
[Python][백준 2212][정렬][그리디] 센서 - 컴도리돌이 풀이과정 해당 문제는 좌표를 단순히 정렬시켜서 센서들 간의 거리를 저장하고 정렬하여 n-k까지 합을 구하면 된다. 여기서 n-k까지 합을 구하는 이유를 물어본다면,, 문제를 그리면서 푸는 것을 추천한다. 🙄 1. 센서 위치를 정렬시킨다. 2. x의 0번째 인덱스부터 n-1 인덱스까지 다음 좌표까지의 거리를 저장한다. 3. 다음 좌표까지의 거리들을 정렬시킨다. 4. 정렬된 좌표 간의 거리 리스트에서 n-k까지 합을 구하여 출력한다. 풀이 코드 n,k,*x = map(int,open(0).read().split()) ;x.sort() print(sum(sorted([x[i+1] - x[i] for i in range(n-1)])[:n-k])) 더보기
[Python][백준 2133][DP] 타일 채우기 - 컴도리돌이 풀이과정 해당 문제는 뭔가 일단 규칙성을 찾아야 하게끔 생겨 버렸다. 😶‍🌫️😶‍🌫️ 일단 n이 홀수이면 0인 거 알겠지만, n이 짝수일 때 규칙성을 찾는데 애를 먹었다. 일단 n이 2일 때는 3이다. 그다음 n이 4일 때는 11이다. 근데 여기서 n이 2일 때 경우의 수 각각 2,2이기 때문에 2 * 2에 새로운 모양 2개를 더해준 값이다. 그렇다면 일단 dp [2] * dp [2] + 2라고 표현할 수 있다. 그다음 n이 6일 때는 41이다. dp [4] * dp [2] + dp [2] * 2 + 2 그다음 n이 8일 때는 dp [6] * dp [2] + (dp [4] + dp [2] ) * 2 + 2 그다음 n이 10일 때는 dp [8] * dp [2] + (dp [6] + dp [4] + dp [.. 더보기
[JAVA][백준 20437][문자열] 문자열 게임 2 - 컴도리돌이 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 자세한 풀이과정은 다음 링크에 걸어놓았습니다. 물론 파이썬으로 해결해서 코드가 조금 더 간결하고 쉽게 해결했지만, 전체적인 흐름은 똑같습니다. 1. 주어진 문자열을 반복문을 돌려서 해당 문자열이 몇 번째 인덱스에 나왔는지 저장을 합니다. 2. 인덱스 정보가 담긴 문자열 배열을 알파벳의 개수(26)만큼 반복문을 돌립니다. 3. 배열의 크기가 주어진 개수보다 작을 경우 continue 개수를 포함할 경우 인덱스 간에 거리를 구해서 min, max를 업데이트 합니다.. 더보기
[Python][백준 20437][문자열] 문자열 게임 2 - 컴도리돌이 풀이과정 해당 문제는 시간 초과를 걸리 줄 알았는데, 생각보다 쉽게 해결되어서 허무(?)했던 문제였다. (원래 시간 초과 4개 걸리고 해결해야 짜릿한데,,🙄🙄) 1. 입력받은 w를 enumerate로 인덱스 번호(i), 문자열(str)로 열거하여 dictionary(ww)에 문자열의 인덱스를 삽입해준다. 2. 각 알파벳의 인덱스 정보를 담고 있는 ww를 반복문을 다음과 같이 수행한다. 3. 해당 알파벳의 인덱스 리스트를 'str_idx_list'라고 설정하였다. 4. 해당 리스트의 크기가 k보다 작으면, 문제에서 주어진 3,4번 조건을 만족하지 못하기 때문에 continue를 시킨다. 5. len_list는 k개를 포함하는 문자의 문자열 길이를 담는 리스트이다. len_list에 str_idx_list .. 더보기
[Python][백준 1194][BFS][bit masking] 달이 차오른다, 가자. - 컴도리돌이 풀이과정 해당 문제는 방문 표시만 제대로 하면 쉽게 해결할 수 있는 문제이다. 물론 방문 표시가 생각보다 까다롭다. 😂 시작점에서 끝점까지 도달하는 최단 거리는 너비 우선 탐색(BFS)으로 구현하면 된다. 그렇다면 이 문제의 핵심은 방문 표시이다. 탈출을 하기 위해서는 '.' 공간만 이용할 수 있다. 물론 주어진 n*m 행렬 맵에서는 키라는 특이한 요소를 첨가했다. 키의 종류는 a, b, c, d, e, f 총 6가지이며, 키의 종류 따른 문의 종류도 A, B, C, D, E, F 총 6가지이다. 문제에서는 탈출구까지 가는 길에 문이 있으면 해당 문에 맞는 키 값을 소유하고 있어야 한다. 그렇기 때문에 BFS 탐색할 때 방문 표시를 가지고 있는 키 값들에 따라 해주어야 한다. 키의 종류는 총 6가지이다... 더보기
[Spring] 스프링 빈(Bean)에 대해서 - 컴도리돌이 [Spring Boot] 스프링 제어의 역전(Inversion of Control)과 의존성 주입(Dependency Injection - DI)에 대해서 - 1. 제어의 역전(Inversion of Control) 정의 및 예제 2. 의존성 주입(Dependency Injection) 정의 및 예제 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성하게 하여 가독성 및 코드의 comdolidol-i.tistory.com [Spring Boot] 스프링에 대해서 - 컴도리돌이 스프링(Spring)의 정의 스프링(Spring)은 자바(JAVA) 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임 워크이다. 위에 말은 스프링에 대해 잘 알려진 대표적인 정의이다. 하지만 스프링을 c.. 더보기

728x90