Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Greedy 문제들 #48

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

465 changes: 465 additions & 0 deletions .idea/dbnavigator.xml

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions AlgoAlgoAlgo.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
37 changes: 37 additions & 0 deletions src/baekjoon/greedy/Bj11047.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package baekjoon.greedy;

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Bj11047 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int target = Integer.parseInt(st.nextToken());

int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}

int count = 0;
for (int i = n - 1; i >= 0; i--) {
if (arr[i] > target) {
continue;
}
count += target / arr[i];
target %= arr[i];
}

bw.write(count + "");
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
38 changes: 38 additions & 0 deletions src/baekjoon/greedy/Bj11399.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package baekjoon.greedy;

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Bj11399 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}

Arrays.sort(arr);

int[] sum = new int[n];
int result = 0;
for (int i = 0; i < sum.length; i++) {
sum[i] = (i > 0 ? sum[i - 1] : 0) + arr[i];
result += sum[i];
}

// System.out.println("Arrays.toString() = " + Arrays.toString(sum));
// System.out.println("result = " + result);

bw.write(result + "");
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
39 changes: 39 additions & 0 deletions src/baekjoon/greedy/Bj11508.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package baekjoon.greedy;

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Bj11508 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(br.readLine());
}

Arrays.sort(arr);

long sum = 0;
// 10, 9, 4, 2, 6, 4, 3
// 10 9 6 4 4 3 2 -> (10 9 6), (4 4 3), (2)
for (int i = n - 1; i >= 2; i -= 3) {
sum += arr[i] + arr[i - 1];
}

int k = n % 3;
for (int i = 0; i < k; i++) {
sum += arr[i];
}

bw.write(sum + "");
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
41 changes: 41 additions & 0 deletions src/baekjoon/greedy/Bj13305.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package baekjoon.greedy;

import java.io.*;
import java.util.StringTokenizer;

public class Bj13305 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

int n = Integer.parseInt(br.readLine());

int[] roads = new int[n - 1];
int[] cities = new int[n];

StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < roads.length; i++) {
roads[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < cities.length; i++) {
cities[i] = Integer.parseInt(st.nextToken());
}

long sum = 0;
int beforePrice = cities[0];
for (int i = 0; i < roads.length; i++) {
if (cities[i] < beforePrice) {
beforePrice = cities[i];
}
sum += (long) beforePrice * roads[i];
}

bw.write(sum + "");
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
52 changes: 52 additions & 0 deletions src/baekjoon/greedy/Bj1343.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package baekjoon.greedy;

import java.io.*;
import java.util.StringTokenizer;

public class Bj1343 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

String input = br.readLine();
StringTokenizer st = new StringTokenizer(input, ".*");
StringTokenizer st2 = new StringTokenizer(input, "X*");
StringBuilder sb = new StringBuilder(input.length());
if (input.charAt(0) == '.') {
sb.append(st2.nextToken());
}
while (st.hasMoreTokens()) {
String s = st.nextToken();
int count_4 = 0;
int count_2 = 0;
int n = s.length();
while (n % 4 != 0) {
n -= 2;
count_2++;
if (n < 2 && n != 0) {
bw.write("-1");
return;
}
}
count_4 = n / 4;

StringBuilder sb2 = new StringBuilder(s.length());
for (int i = 0; i < count_4; i++) {
sb2.append("AAAA");
}
for (int i = 0; i < count_2; i++) {
sb2.append("BB");
}

sb.append(sb2);
if (st2.hasMoreTokens()) {
sb.append(st2.nextToken());
}
}
bw.write(sb.toString());
bw.flush();
} catch (IOException ie) {
ie.printStackTrace();
}
}
}
51 changes: 51 additions & 0 deletions src/baekjoon/greedy/Bj1439.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package baekjoon.greedy;

import java.io.*;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Bj1439 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

String s = br.readLine();

int countOne = 0;
char before = ' ';
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (before == c) {
continue;
}

if (c == '1') {
countOne++;
}
before = c;

}

int countZero = 0;
before = ' ';
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (before == c) {
continue;
}

if (c == '0') {
countZero++;
}
before = c;
}

bw.write(Math.min(countOne, countZero) + "");
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
33 changes: 33 additions & 0 deletions src/baekjoon/greedy/Bj14916.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package baekjoon.greedy;

import java.io.*;

public class Bj14916 {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {

int n = Integer.parseInt(br.readLine());

if (n == 1 || n == 3) {
bw.write(-1 + "");
} else {
int count = n / 5;
n %= 5;
if (n % 2 == 0) {
count += n / 2;
} else {
count--;
n += 5;
count += n / 2;
}

bw.write(count + "");
}
bw.flush();

} catch (IOException ie) {
ie.printStackTrace();
}
}
}
Loading