Skip to content
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
29 changes: 29 additions & 0 deletions week39/이상억/backjoon/A와_B.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import java.io.*;

public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String S = br.readLine();
StringBuilder T = new StringBuilder(br.readLine());

while (T.length() > S.length()) {
char last = T.charAt(T.length() - 1);

if (last == 'A') {
// 맨 뒤 A 제거
T.deleteCharAt(T.length() - 1);
} else {
// 맨 뒤 B 제거 후 뒤집기
T.deleteCharAt(T.length() - 1);
T.reverse();
}
}

if (T.toString().equals(S)) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
29 changes: 29 additions & 0 deletions week39/이상억/backjoon/구두_수선공.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import java.io.*;
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());

List<int[]> tasks = new ArrayList<>();
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(st.nextToken());
int S = Integer.parseInt(st.nextToken());
tasks.add(new int[]{T, S, i + 1}); // 시간 , 벌금 , 순서
}

tasks.sort((a, b) -> {
long comp = (long)b[1] * a[0] - (long)a[1] * b[0]; //
if (comp != 0) return comp > 0 ? 1 : -1;
return a[2] - b[2];
});

StringBuilder sb = new StringBuilder();
for (int[] task : tasks) {
sb.append(task[2]).append(" ");
}
System.out.println(sb.toString().trim());
}
}
22 changes: 22 additions & 0 deletions week39/이상억/backjoon/내리막길.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import java.io.*;
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());

int M = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());

int[][] map = new int[M][N];

for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}

}
}
57 changes: 57 additions & 0 deletions week39/이상억/backjoon/이전_순열.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import java.io.*;
import java.util.*;

public class Main {

static void swap(int[] arr, int a, int b) {
int tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}

static void reverse(int[] arr, int start, int end) {
while (start < end) {
swap(arr, start, end);
start++;
end--;
}
}

public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;

int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];

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

int i = N - 1;
while (i > 0 && arr[i - 1] < arr[i]) { // 오름차순 깨지는 구간
i--;
}

if (i == 0) {
System.out.println(-1);
return;
}

int j = N - 1;
while (arr[j] > arr[i - 1]) { // 내림차순 깨지는 구간
j--;
}

swap(arr, i - 1, j);

reverse(arr, i, N - 1);

StringBuilder sb = new StringBuilder();
for (int k = 0; k < N; k++) {
sb.append(arr[k]).append(" ");
}
System.out.println(sb.toString().trim());
}
}