매일 Algorithm

신재원·2023년 3월 16일
0

Algorithm

목록 보기
67/243

프로그래머스 (LEVEL 2)

import java.util.*;
class Solution {
    public String solution(String s) {
        String answer = "";
        String [] st = s.split(" ");
        List<Integer> list = new ArrayList<>();
        
        // List에 int값으로 변환하여 저장
        for(int i = 0; i <st.length; i++){
            list.add(Integer.parseInt(st[i]));
        }
        // List 라이브러리 사용 max, min값 저장
        int max = Collections.max(list);
        int min = Collections.min(list);
        
        answer = min + " " + max;
        return answer;
    }
}

백준 1764번 (해시)

import java.util.*;

public class problem201 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt(); // 듣도못한 사람
        int m = in.nextInt(); // 보도못한 사람

        Map<String, Integer> map1 = new HashMap<>();
        Map<String, Integer> map2 = new HashMap<>();


        for (int i = 0; i < n; i++) {
            String a = in.next();
            map1.put(a, i);
        }

        for (int i = 0; i < m; i++) {
            String a = in.next();
            map2.put(a, i);
        }

        List<String> result = new ArrayList<>();

        // key값을 비교
        for (String st : map1.keySet()) {
            if (map2.containsKey(st)) {
                result.add(st);
            }
        }
        // 사전순으로 정렬
        Collections.sort(result);

        System.out.println(result.size());

        for (String s : result) {
            System.out.println(s);
        }


    }
}

백준 10817번 (구현)


import java.util.Arrays;
import java.util.Scanner;

public class problem202 {
    public static void main(String[] args) {
        // 간단한 문제다.
        Scanner in = new Scanner(System.in);
        int[] arr = new int[3];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);

        System.out.print(arr[1]);


    }
}

백준 2920번 (구현)

import java.util.*;
public class problem203 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int [] arr = new int [8];

        for(int i = 0; i < arr.length; i++){
            arr[i] = in.nextInt();
        }

        String result = "";
        for(int j = 0; j < arr.length - 1; j++){
            // 1씩 증가하는지 확인
            if(arr[j] == arr[j+1] - 1){
                result = "ascending";
            }
            // 1씩 감소하는지 확인
            else if(arr[j] == arr[j+1] +1){
                result = "descending";
            }else{
                result = "mixed";
                // break 해주는 이유는 arr 배열을 끝까지 순회 할 이유가 없다.
                break;
            }
        }
        System.out.print(result);
    }
}

백준 2775번 (구현)

import java.util.Scanner;

public class problem204 {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);


        int[][] apt = new int[15][15];

        for (int i = 0; i < apt.length; i++) {
            apt[i][1] = 1; // i층의 1호
            apt[0][i] = i; // 0층 i호
        }
        for (int i = 1; i < apt.length; i++) {
            for (int j = 2; j < apt.length; j++) {
                // apt 배열을 층수와 호에따라 만들어 놓는다.
                apt[i][j] = apt[i][j - 1] + apt[i - 1][j];
            }
        }

        int t = in.nextInt();
        for (int i = 0; i < t; i++) {
            int n = in.nextInt(); // 층
            int m = in.nextInt(); // 호

            System.out.println(apt[n][m]);
        }

    }
}

0개의 댓글