02-15 10:22
Recent Posts
Recent Comments
Tags
- ์คํฝ์ค๋น
- Java
- SQL
- ์จ์ผ๋ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JOBํ๊ณ
- DB
- ์ด๋ธ์
- mysql
- ict๊ณต๋ชจ์
- ์๋ฐ
- ICT
- ํ์ด์
- linux
- ์๋์ด๋ ธ
- ํ์ด์ฌ
- ICT๋ฉํ ๋ง
- ํ์ด์๊ณต๋ชจ์
- appetizer
- ์กํ๊ณ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ํ๋ก๋ณด๋ ธ
- ์คํฝ๋ ํ
- TSQL
- RaspberryPi
- API๋ง์ผํ๋ ์ด์ค
- Naver Cloud
- python
- Spring
- DATABASE
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_27 ์ฐ์ ๋ถ๋ถ ์์ด ๋ณธ๋ฌธ
![](https://blog.kakaocdn.net/dn/G7K9N/btrpMklP6KT/1kvDtRl6kvKArvkCOgv0r1/img.jpg)
๐ฌ ๋ฌธ์ ์ค๋ช
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