Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[문제풀이] B2018 수들의 합 5 본문
수들의 합 5
🪅 반복횟수가 불명확할 때, while을 생각할 수 있느냐
🪅 앞을 자르거나 뒤를 붙이는 방식으로 전의 연산을 최대한 써(?)먹을 수 있느냐

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int tot = 1;
int start = 1;
int end = 1;
int cnt = 0;
while(end != N) {
// N보다 작을때 2부터 더해나간다 (1은 이미 더해져있으니까)
if(tot < N) tot += ++end;
else if(tot > N) tot -= start++; // N보다 클때 앞부터 소거해나간다
else {
cnt++; // 조건을 만족할 때 ++
tot -= start++; // 다음 가지수를 찾기 위해 앞부터 소거해나간다
}
}
System.out.println(cnt+1); // 마지막 자기자신으로 N을 만드는 것 +1
}
}
💡 문제 접근 방법
반복횟수가 불명확하기 때문에 while을 썼다.
이미 했던 연산을 최대한 써(?)먹기 위해 앞을 소거하거나 뒤를 붙이는 방법으로
문제에 대한 답의 개수를 구하였다.
'코딩 테스트 > 문제풀이' 카테고리의 다른 글
[문제풀이] B1759 암호만들기 (0) | 2023.03.27 |
---|---|
[문제풀이] B15650 N과M (2) (0) | 2023.03.25 |
[문제풀이] B12891 DNA비밀번호 (0) | 2023.03.24 |
[문제풀이] B13023 ABCDE (0) | 2023.03.23 |
[문제풀이] B10986 나머지합 (0) | 2023.03.21 |
Comments