매일 Algorithm

신재원·2023년 4월 3일
0

Algorithm

목록 보기
85/243

백준 1919번 (구현)

import java.util.Scanner;

public class problem268 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int[] aArr = new int[26]; // 알파벳 크기 배열
        int[] bArr = new int[26];


        String aStr = in.next();
        char[] bStr = in.next().toCharArray();

        for (int i = 0; i < aStr.length(); i++) {
            aArr[aStr.charAt(i) - 'a']++; // 알파벳 아스키 코드 인덱스값 증가
        }
        for (int i = 0; i < bStr.length; i++) {
            bArr[bStr[i] - 'a']++;
        }

        int result = 0;
        for (int i = 0; i < 26; i++) {
            result += Math.abs(aArr[i] - bArr[i]);
        }
        System.out.print(result);
    }
}

백준 11403번 (그래프 이론)

import java.util.Scanner;

public class problem269 {
    static int n;
    static int[][] graph;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        n = in.nextInt();
        graph = new int[n][n];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                graph[i][j] = in.nextInt();
            }
        }


        // i,j의 노드를 거쳐가는 간선이 존재하는가?
        // (시작점, 도착점, 거쳐가는점) 1을 발견하게되면 1을 넣어준다.

        // 점 i를 지나간다.
        for (int i = 0; i < n; i++) {
            // 점 j에서 시작
            for (int j = 0; j < n; j++) {
                // 점 k에서 시작
                for (int k = 0; k < n; k++) {
                    if(graph[j][i] == 1 && graph[i][k] == 1){
                        graph[j][k] = 1;
                    }
                }
            }
        }
        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                sb.append(graph[i][j]).append(" ");
            }
            sb.append("\n"); // 한칸 띄우기(ln)
        }

        System.out.print(sb.toString());
    }
}

백준 11866번 (구현)

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class problem270 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        Queue<Integer> q = new LinkedList<>();
        int n = in.nextInt();
        int k = in.nextInt();

        for (int i = 1; i <= n; i++) {
            q.add(i);
        }
        StringBuilder sb = new StringBuilder();
        sb.append("<");


        while (q.size() > 1) {

            for (int i = 0; i < k - 1; i++) { // 인덱스 k가 필요함으로 k-1
                int temp = q.poll(); // FIFO,
                q.offer(temp);
            }
            // Loop1 = 2 3 4 5 6 7 1
            sb.append(q.poll()).append(", ");
        }

        // 마지막 원소를 꺼낸후 ">" 더해준다.
        sb.append(q.poll()).append(">");

        System.out.print(sb.toString());
    }
}

0개의 댓글