목록전체 글 (287)
개발자는 기록이 답이다
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cPyHMN/btsv0oKu8IZ/KeiTHgAd6Mkx9nnVVpdhKK/img.png)
6. 연속된 자연수의 합(수학) 예시 입력 1 15 예시 출력 1 3 강의 풀이 import java.util.Scanner; public class Main { public int solution(int n) { int answer = 0, cnt = 1; n--; while(n>0) { cnt++; n = n-cnt; if(n % cnt == 0) { // 실제 값을 확인해 보기 위한 출력문 // System.out.println(n + " " + cnt); answer ++; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pi6kN/btswgUgdB70/xzaOW9NLr80qK8WMZSHVg0/img.png)
5. 연속된 자연수의 합 예시 입력 1 15 예시 출력 1 3 내가 푼 풀이(Time: 156ms Memory: 27MB) 강의 풀이에선 배열을 만들어서 자연수들을 담았는데, 그게 더 속도가 조금 빠르다. 계속 정수를 찾는것보다 데이터를 배열로 담는게 찾기가 더 빨라서 그런걸까? import java.util.Scanner; public class Main { public int solution(int n) { int answer = 0, lt = 1, sum = lt; for (int rt = 2; rt = n) { sum -= lt; lt++; if (sum == n) answer++; } } ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bq8g48/btsv7xmzsZU/N1CBSQ9sKBrzC0SrtBckL1/img.png)
4. 연속부분수열(복합문제) 예시 입력 1 8 6 1 2 1 3 1 1 1 2 예시 출력 1 3 2중 포문으로 풀면 시간복잡도가 O(N²)인데, 입력값이 십만이 넘기 때문에, i부터 쫘악 도는게 비효율적이다. 입력 제한을 보는 순간 O(N²)은 안되겠구나라고 판단해야한다. O(N²)을 O(N)으로 풀어내는 능력을 키워야 합니다. 내가 푼 틀린 풀이(Time: 1947ms Memory: 34MB- Time Limit Exceeded) 2중 포문만 안쓰면 되는 줄 알았는데, 결국에는 다시 2번째 if분기처리에서 for문을 재 순회하게 되므로 시간 초과가 나왔다. import java.util.Scanner; public class Main { public int solution(int n, int m, in..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b7tJ8B/btsv8SDzJcI/tMkCZvYd002sXxa49Xairk/img.png)
14. 그래프 최단거리(BFS) 예시 입력 1 6 9 1 3 1 4 2 1 2 5 3 4 4 5 4 6 6 2 6 5 예시 출력 1 2 : 3 3 : 1 4 : 1 5 : 2 6 : 2 1번 정점에서 각 정점으로 가는 최소 이동 간선수를 출력하세요. 1번 정점에서 2번정점을 간다고 하면 1->4->6->2 라서 총 3번이다. 1->3->4->6으로 갈 수 도 있지만 4번만에 가서 최단 간선수는 아니다. 1번은 0레벨이고, 1레벨만에 가는건 3,4번이라서 큐에 3,4번이 들어간다. 3,4는 1레벨이고 한번만에 간다는 의미이다. 이런식으로 레벨로 할 수 도 있다 1레벨 돌때, 큐에서 3,4가 나올텐데, for문 2바퀴 돌면서 탐색한다. 3에서 나올 수 있는건 4인데, 이미 체크된거라서 갈 필요 없다. 4에서..