목록알고리즘 (192)
곽로그
문제 www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이1 - 9명의 난쟁이 중에서 7명을 뽑은 후, 7명의 키가 100이되는 경우를 탐색 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { public s..
11월 22일 내내 이거 풀었는데, 또 풀고나니 왜그렇게 오래걸렸나 싶다. 문제 www.acmicpc.net/problem/1662 1662번: 압축 압축되지 않은 문자열 S가 주어졌을 때, 이 문자열중 어떤 부분 문자열은 K(Q)와 같이 압축 할 수 있다. K는 한자리 정수이고, Q는 0자리 이상의 문자열이다. 이 Q라는 문자열이 K번 반복된다는 뜻이 www.acmicpc.net 풀이 - 우선 주어진 문자열의 구성을 봐야한다. 1개 문자열/ 괄호/Q(괄호안의 문자) /K 이렇게 있다. 한 스택에 push를 할때는 구분을 해줘야 한다. 이걸 생각하기 까지 꽤 오래걸렸다. - 33(562(71(9)))가 있을 때 1(9)를 계산(1*9) 한 후 결과를 다시 stack 에 push를 한다. 이때 스택에 남아..
문제 programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 풀이 1) 선이수과목 리스트를 만들었다. 선행스킬리스트가 CBD라고 주어졌으면 과목 B의 선이수스킬은 C이고, D의 선이수 스킬은 B가 된다. 이런 식으로 리스트를 만들었고, 선이수스킬이 없는 경우에는 ' ' 을 넣었다. 리스트의 인덱스는 알파벳 대문자의 아스키 코드를 이용했다. preSkillList = new char[26]; Arrays.fill(preSkillList,' '); for(int index = 0 ; index
문제 www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 처음풀이(시간초과) - 삭제할 인덱스를 선택한다. for문을 돌면서 i까지 연속하는 최대합을 구하는데, i = index이면 이전의 합을 그대로 가져온다. - 이 경우 이중 for문으로 시간복잡도가 N제곱이 되면서 시간초과가 난다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; impo..
문제 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net check 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static int N; public static int[][] integerTriagle; public static int[][] maxes; public static vo..
문제 www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net check - 초기화 하는걸 더 간단하게 하는 방법 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static int N; public static int[] wineL..
문제 www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net check 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static int N; public static int[][] ascen..
문제 www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net check zoo[i][j] = i번째 우리에 동물을 넣을 때 동물을 넣지 않는 경우의 수(j=0), 1번열에 넣는 경우(j=1), 2번열에 넣는 경우(j=2) 라고 정의하면, 점화식은 zoo[i][0] = zoo[i-1][0] + zoo[i-1][1] +zoo[i-1][2], zoo[i][1] = zoo[i-1][0] +zoo[i-1][2] zoo[i][2] = zoo[i-1][0] +zoo[i-1][1] 이 된다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; imp..