생각Github - https://github.com/hellojdh/Code/blob/master/src/swexpert/d5/Q6782.java 2이상의 정수 N이 주어진다. N은 다음 2개의 규칙으로 바꿀 수 있다. 1) sqrt(N)이 정수라면 N을 sqrt(N)으로 바꿀 수 있다. 2) 그렇지 않다면 N을 N+1로 바꿀 수 있다. 처음 생각처음엔 생각나는데로 풀이를 시작했다. 규칙대로 루트 N 값이 정수라면 N을 루트 N으로 바꿔주고, 그렇지 않다면 1씩 증가시켜주었다.▶ N이 최대 10^12으로 숫자가 상당히 커서 시간 초과가 났다.▶ 루트 N이 정수인지 확인한 방법은 간단하게 다음과 같이 확인하였다. 12double t = Math.sqrt(n);if((int)t == t) {} ▶ Java..
Queue는 FIFO(First In First Out)의 구조를 가진 자료구조로 BFS를 구현할 때 많이 사용이 됩니다. 라이브러리가 있다면 사용하면 간단하게 Queue를 이용할 수 있지만 라이브러리를 쓰지 못하는 곳에서는 Queue를 구현해야만 합니다. 그렇다고 Queue를 구현하기에는 먼가 벅차게 느껴질 때!!! Queue에 들어가는 자료의 개수가 어느정도 일지 대략적으로라도 알 수 있을 경우는 배열을 이용해서 Queue처럼 사용할 수 있습니다! 1int[] queue = new int[100]; 예제로 사용할 queue라는 이름의 배열을 만들었습니다. 이제 queue 배열 안의 index를 가르킬 2개의 변수를 선언하겠습니다. 12int front = -1;int end = -1; front는 q..
생각Github - https://github.com/hellojdh/Code/blob/master/src/swexpert/d4/Q6731.java 오델로의 판이 주어진다. 한 칸을 선택하면 해당 칸의 가로줄 세로줄이 모두 뒤집힌다. 초기 상태(모두 흰색)로 만들 경우 뒤집어야하는 최소 칸수를 선택하여라. 처음 생각몇 몇 질문들을 보면서 글을 작성해본다.문제를 보면 우선적으로 드는 생각은 DFS를 이용하는 방법이다. 조합을 만들거나 DFS를 통해 검은돌이나 흰돌을 선택해 나가면서 진행을 하고자하는 생각이 무럭무럭 든다.▶ 하지만 배열이 최대 1000*1000 이다. 따라서 모든 경우를 따져주기에는 시간이 많이 부족하다. 조합을 만들어 주는 경우도 몇 십개만 되도 많은 시간이 걸리므로 모든 경우를 따져주는..
- Total
- Today
- Yesterday