본문 바로가기

알고리즘/백준61

(백준/자바) 힌트문제3 05. 그리디 - 백준 11047번 문제 : 동전 0 11047번: 동전 0 (acmicpc.net) 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디 개념 복습 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; class Main { public static void main (String args[]) throws I.. 2023. 8. 6.
(백준/자바) 힌트문제3 04. 다이나믹 프로그래밍 - 백준 1890번 문제 : 점프 1890번: 점프 (acmicpc.net) 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 다이나믹 프로그래밍... 공부 하고 와야겠다. 8/8 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; class Main { static .. 2023. 8. 6.
(백준/자바) 백준 3273번 문제 : 두 수의 합 3273번: 두 수의 합 (acmicpc.net) 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 투포인터 개념 아예 다져버릴려고 문제 하나 더 풀어보기로 했다. 특정 target 값을 만족하는 경우의 수 구하는 문제 * 생각해야할 점 1. i < j 이므로 정렬하면 안 됨. 2. 단 두 수의 합이 target이 되어야 하므로 p1, p2 값을 그에 따라 조정. p1 < p2임에 유의 그 안에 어떤 쌍이든 가능한 것임. 인접한 것이 아니어도 됨. impo.. 2023. 8. 6.
(백준/자바) 힌트문제3 03. 투 포인터 - 백준 2003번 문제 : 수들의 합2 2003번: 수들의 합 2 (acmicpc.net) 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net * 생각해야 할 점 : 1. 수열을 정렬하면 안됨. 2. p2하나만 써도 됨.p1을 for의 i가 대신 해줌. for문 안에 while문으로 조건 검사 total += arr[p2++] 을 하면서 중간에 total == M이면 다음 p1으로 넘어감 나는 while문 밖에 total==M인 조건 검사를 해줬는데 틀렸다고 함. p2한 번이 씹히는 거 같음. import ja.. 2023. 8. 6.
(백준/자바) 힌트문제3 02. 2차원배열 - 백준 2167번 문제 : 2차원 배열의 합 2167번: 2차원 배열의 합 (acmicpc.net) 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 간단하게 풀었다. 근데 다른 알고리즘 같은 거 없이 그냥 단순 이중 for문 문제는 아닐 것 같은데 ... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class TwoArray_02 {.. 2023. 8. 6.
(백준/자바) 힌트문제3 01. 팰린드롬 - 백준 1254번 문제 : 팰린드롬 만들기 1254번: 팰린드롬 만들기 (acmicpc.net) 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 너무 어렵게 생각한 것 같은데 생각보다 간단한 문제였다. 주어진 문자열이 처음부터는 아니더라도 중간 어딘가 ~ 끝에 팰린드롬이 있을 수도 있으니까 문자열 길이만큼 subString으로 잘라서 팰린드롬인지 검사하고 팰린드롬이라면 그 부분을 뺀 자른 인덱스 i 만큼 문자열 길이에 더해주면 되고 팰린드롬이 전혀 없었으면 기존 문자열 길이에 * 2 해야한다. import java.io.BufferedReader; impo.. 2023. 8. 6.
(백준/자바) 힌트문제2 05. 트리 - 백준 11725번 문제 : 트리의 부모 찾기 11725번: 트리의 부모 찾기 (acmicpc.net) 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 강의에서 막 트리를 배워서 응용을 해봤다. - Node 클래스 : 각 노드의 data값과 부모노드 parent, 왼쪽 자식노드 left, 오른쪽 자식노드 right class Node{ int data; Node parent; Node left; Node right; public Node(int data, Node left, Node right, Node parent) { this.data = data; this.parent = parent; this.left = lef.. 2023. 7. 26.
(백준/자바) 힌트문제2 03. 구현 - 백준 5613번 문제 : 계산기 프로그램 5613번: 계산기 프로그램 (acmicpc.net) 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net 주어지는 수와 계산 결과가 int형으로 충분히 될 거라고 생각했다. queue와 stack을 이용해서 풀었다. q에 =을 제외한 모든 피연산자와 연산자를 담아놓고 q에서 하나씩 빼면서 진행. 피연산자라면 stack에 push, 연산자면 stack에서 pop하는데 중위연산이므로 stack에는 하나의 숫자밖에 들어있지않음 그래서 stack.pop 하나, q.poll하나 이렇게 피연산자를 두 개 구.. 2023. 7. 25.
(백준/자바) 힌트문제1 05. 해시테이블 - 백준 10807번 문제 : 개수 세기 10807번: 개수 세기 (acmicpc.net) 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Hashtable; import java.util.StringTokenizer; public class Hashtable_05 { public static void main(String args[]) thro.. 2023. 7. 18.
728x90