문제 풀이 이 문제는 격자형 그래프를 DFS 탐색을 하여 연결된 점들을 구하는 문제이다. 어떻게 보면 격자형 그래프의 UNION FIND 라고 할 수 있나 싶기도 하다. 풀이법은 방문 되지 않은 노드를 모두 방문하여 옆에 있는 노드로 이동 할 수 있으면 이동하여 체크를 하고 같은 집합에 포함시키는 것이다. 여기서는 집합의 갯수를 구하는 문제 이므로 집합의 갯수를 1더하는 것으로 하겠다. 집합의 갯수는 몇개가 나올지 모르므로 ArrrayList를 사용할 것이며 Map은 이중배열을 통해서 구현하고 move 즉 이동도 이중 배열을 통해 구현하겠다. * move에서 중요한점은 이동한 후 node가 bound를 넘지 않는지 check하는 것과 방문하였는지 안하였는지 0이 아닌지 체크 하는 것이다 * Map에서 방..
문제 풀이 i) N과 B 를 입력받는다 ii) N을 char array로 바꿔주고 각 char를 double로 바꿔준다 iii) i번재 char에 B^(arr.length()-1-i) 한 값을 곱한다 -> Math.pow() 를 사용해 줄 것이다. iiii) 모든 값을 더하고 출력한다 import java.util.*; import java.io.*; public class Main{ public static void main(String args[])throws IOException{ //2~9 : 0~9 //10~35 : A~Z 26개 //값 입력 -> 렝스 획득 // 진법 ^ 렝스-1 이 맨 앞에 값 ex) 10110 2진법 1*2^4+0*2^3 ... BufferedReader br= new Bu..
문제 풀이 i) X를 입력받는다. 대각선 하나를 한줄이라고 하고 몇번째 줄에 위치하는지 읽는다. i) 몇번 째 줄에 위치하는지 알았으면 그 줄에서 몇번째 요소 인지 읽는다. ii) 대각선이 짝수 줄이면 분모가 크게 시작하고 홀수 줄이면 분자가 크게 시작한다. import java.io.*; import java.util.*; public class Main{ public static void main(String args[])throws IOException{ Scanner scan= new Scanner(System.in); int X=scan.nextInt(); int i=1; int n=0; while(true){ if(i*(i+1)/2>=X){ X=X-i*(i-1)/2; //n번째 줄까지의 갯수를..