본문 바로가기

알고리즘 문제풀이/백준44

[백준 8979] 올림픽(JAVA) https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수가 빈칸을 사이에 두고 주어진다. 전체 메달 수의 총합은 1,000,000 이하이다. www.acmicpc.net import java.util.PriorityQueue; import java.util.Scanner; class Medal implements Comparable{ int country; int g; int s; int c; pu.. 2020. 3. 21.
[백준 14501] 퇴사(JAVA/C++) https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net [JAVA] import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_bj_14501_퇴사 { static int N,ans=0; static int[] T;//시간 static int[] P;//돈 public static void main(String[] args)throws Exception { BufferedReader .. 2020. 3. 20.
[백준 1309] 동물원(JAVA) https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net dp[N][3] 배열은 만들어 dp[i][1]에는 i번째 첫번째 열에 사자를 넣을 수 있는 경우의 수, dp[i][2]에는 i번째 두번째 열에 사자를 넣을 수 있는 경우의 수, dp[i][0]에는 i번째 줄에 사자를 하나도 넣지 않은 경우의 수가 들어가도록 해줬다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { final static int MOD=9901; public static void main(String[] args).. 2020. 3. 18.
[백준 1543] 문서 검색(JAVA) https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 www.acmicpc.net 인덱스 생각을 잘못해서 두 번 틀렸다.. 인덱스 설정에 주의하자!! import java.io.BufferedReader; import .. 2020. 3. 17.
[백준 2186] 문자판(JAVA) https://www.acmicpc.net/problem/2186 2186번: 문자판 첫째 줄에 N(1 ≤ N ≤ 100), M(1 ≤ M ≤ 100), K(1 ≤ K ≤ 5)가 주어진다. 다음 N개의 줄에는 M개의 알파벳 대문자가 주어지는데, 이는 N×M 크기의 문자판을 나타낸다. 다음 줄에는 1자 이상 80자 이하의 영단어가 주어진다. 모든 문자들은 알파벳 대문자이며, 공백 없이 주어진다. www.acmicpc.net 문제 분류에는 bfs로 나와있지만, 시간초과 메모리초과를 피하기 위해 dfs+메모라이즈로 풀었다. 메모라이즈는 풀 때마다 어렵다..익숙해지도록 문제를 많이 풀어봐야겠다 import java.io.BufferedReader; import java.io.InputStreamReader; i.. 2020. 3. 16.
[백준 6118] 숨바꼭질(JAVA) https://www.acmicpc.net/problem/6118 6118번: 숨바꼭질 문제 재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 많이 널려있고 재서기는 그 중에 하나에 숨어야 한다. 헛간의 개수는 N(2 2020. 3. 16.
[백준 1068] 트리(JAVA) https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다. 셋째 줄에는 지울 노드의 번호가 주어진다. www.acmicpc.net import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { static int N; static int[][] nodes; public static void main(String[] args) { Scanner sc=new Scanne.. 2020. 3. 14.
[백준 9019] DSLR(JAVA) https://www.acmicpc.net/problem/9019 9019번: DSLR 문제 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 자릿수를 d1, d2, d3, d4라고 하자(즉 n = ((d1 × 10 + d2) × 10 + d3) × 10 + d4라고 하자) D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경 www.acmicpc.net BFS문제이다. 처음에 숫자가 아닌 문자열로 구현해서 처리하는 방식으로 했더니 시간초과가 났다. 꼭 문자열만 사용해야 하는 경우가 아니면.. 2020. 3. 13.
[백준 15989] 1,2,3 더하기 4(JAVA) https://www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 1+3 (3+1) 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net import java.util.Scanner; public class Main_bj_15989_123더하기4 { public static void main(String[] args) { Scanner sc= new.. 2020. 3. 13.