목록Problem Solving (183)
지우너
문제https://www.acmicpc.net/problem/1476코드완탐 문제라고 해서 그냥 무식하게 돌렸다...import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { // 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) // 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. // 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 ..
문제https://www.acmicpc.net/problem/4963 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.Queue;import java.util.StringTokenizer;public class Main { public static int w; public static int h; public static int[][] map; public static boolean[][] visited; public static void main(String[] args) throw..
문제https://www.acmicpc.net/problem/1167 풀이DFS1: 아무 정점에서 시작해서 가장 먼 노드a를 찾기DFS2: 가장 먼노드a에서 가장 먼 노드 b를 찾기a에서 b까지의 길이가 트리의 지름(트리에서 임의의 두 점 사이의 거리 중 가장 긴 것) 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;public class Main { public static List> edges; public static int[] ..
문제https://www.acmicpc.net/problem/1260 코드 C++#include #include #include #include #define MAX_N 1000using namespace std;vector > edges(MAX_N+1);bool visited[MAX_N+1] = {false, };// v 방문void DFS(int v);void BFS(int v);int main(){ // [input] // 첫 째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000). 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. int n, m, v; cin >> n >> m >> v; // 다음 M개의 줄에는 간선이 연결하는 두 정..
문제https://www.acmicpc.net/problem/2667 코드문제의 그림처럼 라벨링을 할까 하다가, 어차피 방문한 곳은 다시 방문하지 않기 때문에 굳이 라벨링하지 않았다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static final int MAX_N = 25; public static int n; public static String[] map = new String[MAX_N]; public static boolean[][] visited = new boolean[MA..
문제https://www.acmicpc.net/problem/11652 풀이count arr를 쓰면 되겠다는 생각 그런데 값의 범위가 적혀있는 수는 $-2^{62}$보다 크거나 같고, $2^{62}$보다 작거나 같다.숫자 카드의 개수 N (1 ≤ N ≤ 100,000)는 값의 범위에 비해 너무 작다해당 수를 전부 표현하는 배열을 만든다면 안 쓰이는 수가 너무 많고(메모리 낭비), 메모리 초과가 날 것이다. Map을 쓰면 key값이 중복되지 않으면서, value에 해당 숫자 카드의 개수를 저장cpp에서 map[key]++;를 해서 value값을 1씩 올려줬었는데, 자바에서도 비슷하게 할 수 없을까? 라는 생각이 들었다.map.put(num, map.getOrDefault(num, 0)+1); key값이 있..