반응형 SMALL 자바 알고리즘22 18. 연속된 자연수의 합 # 풀이 - 앞의 17번 문제와 거의 비슷함!!! import java.util.*; public class Main { public int solution(int n) { int answer =0; int sum = 0; int lt = 0, rt=0; // 범위 설정!! 연속된 수이기에 절반 + 1 까지만 해도 됨! int m = n/2+1; int []arr = new int[m]; for(int i=0;i 2022. 8. 9. 17. 연속 부분 수열 (sliding window + 복합) # 풀이 - 앞 문제처럼 sliding window 방식 사용! - rt 를 쭉 증가시키면서 sum 구하기 if (sum == m) 이면 answer ++ - if (sum > m) => 이제 lt 증가시키기 이 때, lt 는 증가시키면서 해당 값 sum에서 빼주기 그러다가 sum == m 이면 answer++ 다시 sum < m 이면, 다시 rt 증가 import java.util.*; public class Main { public int solution(int n,int m,int []arr) { int answer =0; int lt = 0, rt = 0; int sum =0; while(rtm) { sum -= arr[lt]; if(sum==m) answer++; lt++; } rt++; } r.. 2022. 8. 8. 16. 최대 매출 (Sliding window) # 풀이 1 => 시간초과 import java.util.*; public class Main { public int solution(int n,int k,int []arr) { int max =0; for(int i=0;i 2022. 8. 8. 15. 봉우리 # 풀이 - 움직이는 방향을 if문이 아니라, dx, dy배열로 설정해 놓는 방법 기억하기!! ( 4가지 방향이 아니라 8방향일때도 유용하게 사용 가능) - 3중 for문 이용! import java.util.*; import java.util.Scanner; public class Main { public int solution(int n ,int [][]arr) { int answer = 0; int []dx = {-1,0,1,0}; int []dy = {0,1,0,-1}; for(int i=0;i 2022. 8. 5. 이전 1 2 3 4 5 6 다음 반응형 LIST