1. 문제 2. 코드문제를 어떻게 풀어야 할지 모를 때는 반드시 완전 탐색으로 푸는 방법을 생각한다.나도 문제를 보자마자 어떻게 풀어야 하지 한참 고민하다가... 해결 방법이 생각나지 않아서 일단 모든 경우의 수를 탐색했다.1번 교실부터 N번 교실까지 모두 들어가기1번 교실부터 N - 1번 교실까지 모두 들어가기...1번 교실만 들어가기1번 교실에서 출발하여 몇 번 교실을 들어가지 않았을 때 점수가 최대가 되는지 계산할 수 있다.3개의 교실을 반드시 방문해야한다고 했을 때, 아래 표를 보면 5개의 교실 중에서 5번, 3번, 1번을 방문하였을 때 계산 값이 가장 큰 것을 알 수 있다.5번 교실 방문 -> 1번 교실에서 5번 교실로 가기 위해 1번, 2번, 3번, 4번 교실을 모두 방문한 후 최종적으로 5..
https://www.acmicpc.net/problem/1931 코드import java.io.*;import java.util.*;public class Main { static int N; static List meetings = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); StringTokenizer st; for (int i = 0; i { ..
https://www.acmicpc.net/problem/13904 문제 풀이List에 int[] 형태(day, 점수)로 값을 모두 저장하고 1차원 배열 값(day)을 기준으로 오름차순으로 정렬한다. day의 초기값에는 과제의 기간이 가장 긴 날짜를 저장한다. 반복문에서는 0 ~ N까지 모든 과제를 돌면서 제출 기간이 남은 과제를 찾는다. 기간이 아직 남은 과제 중에서 점수를 가장 많이 주는 과제를 찾으면 된다. ex)입력 :74 604 401 202 503 304 106 5입력받은 값을 day를 기준으로 오름차순 정렬한다.1 202 503 30 4 60 4 404 106 5 먼저 과제 제출 기간이 가장 많이 남은 6을 day에 저장한다.6일 보다 기간이 긴 과제는 없으므로 sum + 5를 한다. -> ..
https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 틀린 코드 - Segfault 에러 c가 C, P일 때, que.back()을 호출하는데 이때 큐가 비어있으면 오류가 발생한다. #include using namespace std; vector split(string input) { stringstream ss(input); string buffer; vector result; while(getline(ss, buffer,..
본 글은 다크모드에 최적화되어 있습니다. 학기 중에는 해설 로직을 포함하지 않습니다. 문제 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 언어 자바 Java 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import..