문제설명 입력 & 출력나의 풀이이번 문제는 멀티탭을 이용해 최대 몇 개의 전자기기를 연결할 수 있는지를 구하는 문제입니다.멀티탭에 대한 이해가있으면 정말 간단하게 풀 수 있는 문제입니다. 멀티탭은 위와 같이 플러그가 있고 멀티탭을 연결하는 돼지코?가 있습니다. 이를 고려한다면 문제에서 N개의 멀티탭이 주어지기 때문에 각 멀티탭을 서로 연결할 수 있습니다.문제의 예제 입력2번을 그림으로 표현해봤습니다. 예제 2번에서는 2개의 멀티탭이 주어지고, 각 멀티탭은 5,8개의 플러그를 가지고 있습니다. 따라서 8개의 플러그를 가지고 있는 멀티탭이 전원을 연결하고, 5개의 플러그를 가지고있는 멀티탭을 1번째 멀티탭에 연결해야 합니다.총 플러그 수 - (N - 1) 이 점을 고려한다면 N개의 멀티탭을 사용할 경우 총 ..
Coding Test/백준
문제설명입력 & 출력잘못된 풀이먼저 이번문제는 아주 간단한 수학문제이지만, 처음에 생각했던 for문을 사용하여 반복문으로 문제를 푼다면 시간초과로 실패하게 됩니다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer token = new StringTokenizer(br.readLine()); int A = Integer.parseInt(token.nextToken()); int B = Integer...
문제설명입력 & 출력나의 풀이이번 문제는 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하는 문제입니다.for (int i = 0; i 만약 위와 같이 코드를 작성했다면 각 구간 합을 구하는 데 O(N)의 시간이 걸리기 때문에, 이를 O(1)로 줄이기 위해 누적 합 배열을 사용하는 것이 좋습니다. 먼저 빠른 입력을 위해서 Buffer로 입력을 받아주고, StringTokenizer를 사용하여 숫자를 공백을 기준으로 분리하여 저장합니다. 그리고 각 수를 저장할 배열 arr을 만들고, 누적 합을 구하기 위하여 prefixSum배열을 N보다 1 크게 초기화를 합니다. 각 수를 반복문을 통해서 N개만큼 저장하고, 누적 합 배열에도 각 구간별 누적 합을 저장해 줍니다. 그리고..
문제설명입력 & 출력나의 풀이 이번 문제는 문자열에서 괄호의 균형을 확인하는 것입니다. 주어진 문자열에 대하여 소괄호 ()와 대괄호 []가 올바르게 짝을 이루는지를 판단하고, 올바르면 "yes", 그렇지 않으면 "no"를 출력해야 합니다. 보통 짝을 이루는지 확인하는 문제는 스택을 활용하면 간단히 풀 수 있습니다. 왜냐하면 스택의 특성상 LIFO구조이기 때문에 괄호의 열림과 닫힘을 간편하게 관리할 수 있기 때문입니다. 마지막으로 열린 괄호와 첫 번째로 닫힌 괄호의 대응가장 마지막에 열린 괄호가 가장 먼저 닫혀야 합니다. 스택은 이러한 구조를 자연스럽게 지원합니다. 즉, 가장 마지막에 추가된 요소가 가장 먼저 제거되는 스택의 특성이 괄호 문제에 적합합니다.중첩 구조의 처리괄호는 중첩될 수 있으며, 스택은 ..