import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
for(int i = 0; i < query.length; i++){
int idx = query[i];
if(i % 2 == 0){
arr = Arrays.copyOfRange(arr, 0, query[i] + 1);
}
else{
arr = Arrays.copyOfRange(arr, query[i], arr.length);
}
}
return arr;
}
}
// 좀 더 빠른 방법(매번 배열을 생성하지 않음)
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
int start = 0;
int end = arr.length - 1;
for(int i = 0; i < query.length; i++) {
if(i % 2 == 0) {
end = start + query[i];
}
else {
start = start + query[i];
}
}
return Arrays.copyOfRange(arr, start, end + 1);
}
}class Solution {
public String solution(String polynomial) {
String answer = "";
String[] parts = polynomial.split(" ");
int x = 0, num = 0;
for(String p : parts){
if(p.contains("x")){
if(p.equals("x")) {
x += 1;
} else {
String co = p.replace("x", "");
x += Integer.parseInt(co);
}
}
else{
if(!p.equals("+")) num += Integer.parseInt(p);
}
}
if(num == 0){
if(x == 1) answer = "x";
else answer = x + "x";
}
else if(x == 0){
answer = Integer.toString(num);
}
else{
if(x == 1) answer = "x + " + num;
else answer = x + "x + " + num;
}
return answer;
}
}class Solution {
public int solution(int a, int b) {
int answer = 2;
int g = gcd(a, b);
a /= g;
b /= g;
while(true){
if(b % 2 == 0) b /= 2;
else if(b % 5 == 0) b /= 5;
else break;
}
if(b == 1) answer = 1;
return answer;
}
private int gcd(int a, int b){
while(b != 0){
int tmp = a % b;
a = b;
b = tmp;
}
return a;
}
}import java.util.*;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> list = new ArrayList<>();
for(int i = l; i <= r; i++){
String s = Integer.toString(i);
s = s.replace("5", "");
s = s.replace("0", "");
if(s.equals("")){
list.add(i);
}
}
int[] answer = new int[list.size()];
if(list.isEmpty()){
return new int[] {-1};
}
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}class Solution {
public int solution(int n) {
int answer = 0;
int num = 1;
for(int i = 1; i <= n; i++){
while(num % 3 == 0 || Integer.toString(num).contains("3")){
num++;
}
answer = num++;
}
return answer;
}
}class Solution {
public int solution(String A, String B) {
int answer = 0;
String s = A;
for(int i = 0; i < A.length(); i++){
if(B.equals(s)) return answer;
String a = s.substring(s.length() - 1);
s = a + s.substring(0, s.length() - 1);
answer++;
}
return -1;
}
}
// 개선
class Solution {
public int solution(String A, String B) {
return (B + B).indexOf(A);
}
}class Solution {
public int solution(int chicken) {
int answer = 0;
int left = 0;
while(chicken != 0){
chicken += left;
answer += chicken / 10;
left = chicken % 10;
chicken /= 10;
}
return answer;
}
}
// 개선
class Solution {
public int solution(int chicken) {
if(chicken == 0) return 0;
return (chicken - 1) / 9;
}
}class Solution {
public int[] solution(int[][] score) {
int[] answer = new int[score.length];
double[] avg = new double[score.length];
for(int i = 0; i < score.length; i++){
avg[i] = (double)(score[i][0] + score[i][1]) / 2.0;
}
for (int i = 0; i < avg.length; i++) {
int rank = 1;
for (int j = 0; j < avg.length; j++) {
if (avg[i] < avg[j]) {
rank++;
}
}
answer[i] = rank;
}
return answer;
}
}class Solution {
public int solution(String[] spell, String[] dic) {
for(int i = 0; i < dic.length; i++){
String word = dic[i];
if(word.length() != spell.length) continue;
boolean check = true;
for(int j = 0; j < spell.length; j++){
if(word.contains(spell[j])){
word = word.replaceFirst(spell[j], "");
}
else{
check = false;
break;
}
}
if(!check) continue;
if(word.equals("")) return 1;
}
return 2;
}
}class Solution {
public String solution(String[] id_pw, String[][] db) {
String id = id_pw[0];
String pw = id_pw[1];
for(int i = 0; i < db.length; i++){
System.out.println(db[i][0] + " " + db[i][1]);
if(db[i][0].equals(id) && db[i][1].equals(pw)) return "login";
else if(db[i][0].equals(id) && !db[i][1].equals(pw)) return "wrong pw";
}
return "fail";
}
}import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for(char c : a.toCharArray()){
if(Character.isUpperCase(c)){
answer += Character.toLowerCase(c);
}
else{
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
}
}class Solution {
public int solution(int[][] dots) {
int answer = 0;
int min_x = dots[0][0], min_y = dots[0][1];
int max_x = dots[0][0], max_y = dots[0][1];
for(int i = 1; i < dots.length; i++){
min_x = Math.min(dots[i][0], min_x);
min_y = Math.min(dots[i][1], min_y);
max_x = Math.max(dots[i][0], max_x);
max_y = Math.max(dots[i][1], max_y);
}
answer = Math.abs(max_x - min_x) * Math.abs(max_y - min_y);
return answer;
}
}class Solution {
public int[] solution(String[] keyinput, int[] board) {
int to_x = (board[0] - 1)/2, to_y = (board[1] - 1)/2;
int x = 0, y = 0;
for(String k : keyinput){
if(k.equals("up")){
if(y + 1 > to_y) continue;
y += 1;
}
else if(k.equals("down")){
if(y - 1 < -to_y) continue;
y -= 1;
}
else if(k.equals("right")){
if(x + 1 > to_x) continue;
x += 1;
}
else{
if(x - 1 < -to_x) continue;
x -= 1;
}
}
int[] answer = {x, y};
return answer;
}
}class Solution {
public int solution(int M, int N) {
return M * N - 1;
}
}import java.util.*;
class Solution {
public int solution(int[] rank, boolean[] attendance) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < rank.length; i++){
if(attendance[i]){
list.add(rank[i]);
}
}
Collections.sort(list);
int a = 0, b = 0, c = 0;
for(int i = 0; i < rank.length; i++){
if(rank[i] == list.get(0)) a = i;
if(rank[i] == list.get(1)) b = i;
if(rank[i] == list.get(2)) c = i;
}
return a * 10000 + b * 100 + c;
}
}