문제 풀이 아이디어는 Python 풀이와 같습니다. 단지.. 지금 약간 혼동이 오는게,,, 자바와 비슷한 코드로 작성했는데, 코틀린은 시간 초과가 나고 자바는 통과되네요. 다른 방식을 생각해야 할 것 같은데,,, 좀 어렵네요. import java.util.Scanner fun main(args: Array) { val sc = Scanner(System.`in`) val n = sc.nextInt() val m = sc.nextInt() val arr = IntArray(n+1) {0} for (i in 1..n) arr[i] += arr[i-1] + sc.nextInt() var i: Int var j: Int for (k in 0 until m) { i = sc.nextInt() j = sc.nex..

문제 풀러 가기! 전형적인 DP 문제로 입력값이 많기 때문에 구간 마다 더하면 안됩니다. 처음 배열을 입력 받을 때 해당 배열의 누적합을 기록해준 다음 이를 이용하여 구간합을 구해주어야 합니다. 0번 index부터 차례로 하나씩 누적시키면 연산 횟수는 최대 10만번이기 때문에 1초 100,000,000을 넘지않으면서 구할 수 있습니다. 즉 i와 j의 구간합은 j번째 누적합 - i-1번째 누적합을 의미하므로 배열에 접근할 때는 시간 복잡도가 O(1)이기 때문에 빠르게 연산이 가능합니다. 이 문제에서는 O(n**2)이 아니라 O(n)으로 문제를 풀어야 한다는 것이죠. 결국 해당 문제를 종합적으로 살펴봤을 때, n 최대 10만개, m 최대 10만개로 20만번의 순회 끝내 모든 답이 도출되게 됩니다. 아래는 제..
- Total
- Today
- Yesterday
- Kotlin
- Class
- Java
- 생성자
- 비전공싸피합격
- 추가합격후기
- 코틀린
- 백준
- 프로그래머스
- Java #객체지향 #상속 #생성자 #개념 #비전공개발자 #FullStack을 #향해
- 백준알고리즘 #BFS #델타이동 #알고리즘풀이 #개발 #안전영역 #풀스택개발자가되고싶습니다. #노력할래요 # 꾸준히 # 화이팅! #비전공개발자
- 백준 #숨박꼭질3 #다익스트라 #알고리즘 #비전공개발자 #풀스택 #웹개발 #앱개발 #안드로이드 #python
- 싸피5기
- 안드로이드 #안드로이드스튜디오 #Kotlin #앱개발 #안드로이드기초 #비전공개발자 #풀스택개발자 #앱개발자
- kotlin문법
- 보조생성자
- DP
- 알고리즘
- 일반파라미터
- 구간 합 구하기 4
- 참조연산자
- 프로젝트구조
- Python
- 카카오
- 기본생성자
- 중첩클래스와 내부클래스
- 비전공개발자
- Programmers #알고리즘 #Python #KAKAOINTERNSHIP #비전공개발자 #불량사용자
- 안드로이드
- 앱개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |