1. 문제 2. 코드완전 탐색을 통해 2중 for문을 사용할 수 있겠지만, N이 100,000이므로 시간초과가 발생할 것이다.따라서 누적해서 계산할 수 있는 규칙을 찾아서 해결하였다.N = 4, arr = [2, 3, 2, 4](2, 3) + (2, 2) + (2, 4) + (3, 2) + (3, 4) + (2, 4)인덱스 2로 시작하는 총합 : 6 + 4 + 8 = 18인덱스 3으로 시작하는 총합 : 6 + 12 = 18인덱스 2로 시작하는 총합 : 8결론 : 18 + 18 + 8 = 44그러나 다음과 같이 규칙을 찾을 수 있다.(2, 3) + (2, 2) + (2, 4) -> 2 * (3 + 2+ 4) = 18(3, 2) + (3, 4) -> 3 * (2 + 4) = 18(2, 4) -> 8결론 : ..
1. 문제 2. 코드각 픽셀은 R, G, B 값을 가지고 있다.arr 배열의 크기는 [N][M * 3]인데, 그 이유는 한 픽셀에 3개의 색상(R, G, B)를 가지기 때문이다.각 픽셀에 사용된 R, G, B 값을 모두 더하여 평균을 낸다. 평균 >= T : 255 저장평균 2차원 배열 graph를 dfs를 통해 인접한 물체(255)를 찾는다.상하좌우로 인접한 물체(255)가 있다면 answer + 1answer를 출력한다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main { // N : 세로, M :가로 st..
1. 문제근데 사진에는 파란색이 왜 있는 거지? 글만 봤을 때는 파란색에 대한 언급이 없어서 문제를 이해하는 게 오래 걸렸다;;;(a), (b) 모두 outer side에 흰색이 없는데 어떻게 출발하는건지 이해를 못 했다. 사진을 무시하고 입력에 맞춰서 문제를 풀면 된다.흰색 : 0검은색 :1 2. BFS 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;public class Main { static int N, M; static int[][]..
1. 문제https://www.acmicpc.net/problem/31589 2. 코드강한 맛 -> 약한 맛 : 맛을 느낄 수 없으므로, 약한 맛을 먹었을 때 맛은 0이다.약한 맛 -> 강한 맛 : 강한 맛을 먹었을 때, 그전에 먹었던 약한 맛과의 차이만큼 맛을 느낀다. 따라서 강한 맛을 먹으면 (강한 맛 - 약한 맛) 맛을 느낀다.가장 먼저 먹는 포도 주는 포도주의 맛 그대로 인정된다.따라서 먹은 포도주 맛의 최대합을 구하기 위해서는 첫 번째로 먹는 포도주는 가장 맛이 강한 걸로 먹야아 한다. 위 로직에 따라 아래 흐름으로 코드를 작성한다. 필자는 투 포인터를 사용하여 존재하는 포도주 중에서 가장 약한 맛과 가장 강한 맛을 구분하였다.처음으로 먹는 포도주의 맛은 그대로 저장된다. answer += ar..
1. 문제https://www.acmicpc.net/problem/5567 2. 오답 - 양방향 매핑을 해야 한다.입력 : 322 13 2출력:0정답:2 상근이의 학번은 1번이기 때문에, 위 입력에 따르면 1번과 연결된 번호가 없으므로 결혼식에 초대되는 사람이 없어야 한다. 그러나 문제에서 (2, 1)이라면 (1, 2)도 성립한다고 나와있기 때문에, 양방향 그래프로 생성해야 한다.public class Main { static List> nodes = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..