지-코바
[지코바] 8회차 문제풀이
moonseok
2022. 6. 2. 22:14
1. 상수님 문제 - 2xn타일링
import java.util.Scanner;
public class tiling {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] tileNumber = new int[n+2];
tileNumber[1] = 1;
tileNumber[2] = 2;
for(int i = 3; i <= n; i++) {
tileNumber[i] = (tileNumber[i-1] + tileNumber[i-2]) % 10007;
}
System.out.println(tileNumber[n] % 10007);
}
}
2.잃어버린 괄호 - 내 문제
import java.util.Scanner;
public class lostBracket {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = Integer.MAX_VALUE;
String[] splitSubstract = sc.nextLine().split("-");
for(int i = 0; i < splitSubstract.length; i++) {
int temp = 0;
String[] splitAdd = splitSubstract[i].split("\\+");
for(int j = 0 ; j < splitAdd.length; j++) {
temp += Integer.parseInt(splitAdd[j]);
}
if(sum == Integer.MAX_VALUE) {
sum = temp;
}else {
sum -= temp;
}
}
System.out.println(sum);
}
}
3. 숫자 카드 2 - 지윤님 문제
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class card2 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] numbers = new int[20000001];
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int i = 0 ; i < N; i++) {
numbers[Integer.parseInt(st.nextToken())+10000000]++;
}
int M = Integer.parseInt(br.readLine());
st= new StringTokenizer(br.readLine()," ");
StringBuilder sb = new StringBuilder();
for(int j = 0; j < M; j++) {
sb.append(numbers[Integer.parseInt(st.nextToken())+10000000]).append(" ");
}
System.out.println(sb);
}
}
4. 나는야 포켓몬 마스터 이다솜 - 당님 문제
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class poketmon {
public static HashMap<String, String> _makePoketmonList(int N, int M,BufferedReader br) throws IOException {
HashMap<String, String> poketmonList = new HashMap<>();
for(int i = 0; i < N; i++) {
String name = br.readLine();
String index = Integer.toString(i+1);
poketmonList.put(name, index);
poketmonList.put(index, name);
}
return poketmonList;
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashMap<String, String> poketmonList = _makePoketmonList(N, M, br);
StringBuilder sb = new StringBuilder(M);
for(int j = 0; j < M; j++) {
sb.append(poketmonList.get(br.readLine()) + "\n");
}
System.out.println(sb);
}
}
5. DFS와 BFS - 홍님 문제
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class dfsbfs {
static int[][] array;
static boolean visited[];
public static void DFS(int V) {
visited[V] = true;
System.out.print(V + " ");
if(V == array.length) {
return;
}
for(int i = 0; i < array.length; i++) {
if(array[V][i] == 1 && visited[i] == false) {
DFS(i);
}
}
}
public static void BFS(int V) {
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(V);
visited[V] = true;
System.out.print(V + " ");
while(!queue.isEmpty()) {
int temp = queue.poll();
for (int i = 0 ; i < array.length; i++) {
if(array[temp][i] == 1 && visited[i] == false) {
queue.add(i);
visited[i] = true;
System.out.print(i + " ");
}
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int V = sc.nextInt();
array = new int[N + 1][N + 1];
for(int i = 0 ; i < M; i++) {
int first = sc.nextInt();
int second = sc.nextInt();
array[first][second] = 1;
array[second][first] = 1;
}
visited = new boolean[N + 1];
DFS(V);
System.out.println("");
visited = new boolean[N + 1];
BFS(V);
}
}