728x90
반응형
오늘 배운 것
1. 로직
. 어제 배웠던 포인터 문제랑 유사하다는 것을 알게 됨. for문을 작성하는 방법 및 로직 흐름에 대해 배웠다.
2. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
solution(n);
}
private static void solution(int n) {
int [] arr = new int[n];
for (int i = 1; i < arr.length; i++) {
arr[i] = i;
}
int lt=1,tmp_sum=0,answer=0;
for (int i = 0; i < arr.length; i++) {
tmp_sum += arr[i];
if(tmp_sum == n) {
answer++;
}
while(tmp_sum >= n){
tmp_sum -= arr[lt++];
if(tmp_sum==n) {
answer++;
}
}
}
System.out.println(answer);
}
}
. 특이한 풀이법도 있다. 자연수를 하나씩 더해가며 나머지를 구하는 방법이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
solution(n);
}
private static void solution(int n) {
int answer = 0, cnt = 1;
n--;
while(n>0){
cnt++;
n-=cnt;
if(n%cnt==0){
answer++;
}
}
System.out.println(answer);
}
}
728x90
반응형
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 선택 정렬 with Java (0) | 2022.03.24 |
---|---|
[알고리즘] 최대 길이 연속 부분수열 with Java (0) | 2022.03.14 |
[알고리즘] 연속 부분수열 with Java (0) | 2022.03.11 |
[알고리즘] 최대 매출 with Java (0) | 2022.03.10 |
[알고리즘] 공통원소 구하기 with Java (0) | 2022.03.10 |