개발 무지렁이

[문제풀이] B2018 수들의 합 5 본문

코딩 테스트/문제풀이

[문제풀이] B2018 수들의 합 5

Gaejirang-e 2023. 3. 25. 20:25

수들의 합 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