01-09 18:44
Recent Posts
Recent Comments
Tags
- ICT๋ฉํ ๋ง
- linux
- ์คํฝ๋ ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์คํฝ์ค๋น
- ์จ์ผ๋ํ
- ํ์ด์
- python
- ์ด๋ธ์
- appetizer
- Java
- TSQL
- ํ์ด์ฌ
- JOBํ๊ณ
- ict๊ณต๋ชจ์
- DATABASE
- mysql
- ์๋์ด๋ ธ
- ์๋ฐ
- DB
- ์กํ๊ณ
- API๋ง์ผํ๋ ์ด์ค
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- SQL
- ICT
- ํ์ด์๊ณต๋ชจ์
- RaspberryPi
- Naver Cloud
- ํ๋ก๋ณด๋ ธ
- Spring
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_27 ์ฐ์ ๋ถ๋ถ ์์ด ๋ณธ๋ฌธ
๐ฌ ๋ฌธ์ ์ค๋ช
N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋๋ค.
์ด ์์ด์์ ์ฐ์ ๋ถ๋ถ ์์ด์ ํฉ์ด ํน์ ์ซ์ M์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ช ๋ฒ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ง์ฝ N=8, M=6์ด๊ณ ์์ด์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
1 2 1 3 1 1 1 2
ํฉ์ด 6์ด ๋๋ ์ฐ์๋ถ๋ถ์์ด์ {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}๋ก ์ด 3๊ฐ์ง์ ๋๋ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ - ์ฒซ์งธ ์ค์ N(1≤N≤100,000), M(1≤M≤100,000,000)์ด ์ฃผ์ด์ง๋ค.
์์ด์ ์์๊ฐ์ 1,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค.
8 6
1 2 1 3 1 1 1 2
์ถ๋ ฅ - ์ฒซ์งธ ์ค์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
3
โ
๐ป Solution.java
๋ต์ 1) 2์ค for๋ฌธ์ผ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ ์ข์ง ๋ชปํจ
import java.util.*;
public class Main {
public int solution(int n, int m, int[] arr) {
int answer = 0, sum = 0;
for(int i = 1; i <= n; i++) {
for(int j = 0; j < n; j++) {
if(j + i > n)
break;
for(int k = j; k < j + i; k++) {
sum += arr[k];
}
System.out.println();
if(sum == m)
answer++;
sum = 0;
}
}
return answer;
}
public static void main(String[] args){
Main main = new Main();
Scanner sc =new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
System.out.println(main.solution(n, m, arr));
sc.close();
return ;
}
}
๋ต์ 2) two pointer๋ก ์๊ฐ๋ณต์ก๋ O(n)์ผ๋ก ํด๊ฒฐ
import java.util.*;
public class Main {
public int solution(int n, int m, int[] arr) {
int answer = 0, sum = 0;
int lt = 0;
for(int rt = 0; rt < n; rt++) {
sum += arr[rt];
if(sum == m) answer++;
while(sum >= m) {
sum -= arr[lt++];
if(sum == m) answer++;
}
}
return answer;
}
public static void main(String[] args){
Main main = new Main();
Scanner sc =new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
System.out.println(main.solution(n, m, arr));
sc.close();
return ;
}
}
'Algorithm > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_29 ์ต๋ ๊ธธ์ด ์ฐ์ ๋ถ๋ถ ์์ด (0) | 2022.01.04 |
---|---|
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_28 ์ฐ์๋ ์์ฐ์์ ํฉ (0) | 2022.01.04 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_26 ์ต๋ ๋งค์ถ (0) | 2022.01.04 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_25 ๊ณตํต ์์ ๊ตฌํ๊ธฐ (0) | 2022.01.04 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_24 ๋ ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2022.01.04 |
Comments