백준 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());
}
}