๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ

์š”์ผ์ด 2021. 5. 15. 01:04
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

1. ๋‚ด๊ฐ€ ํ‘ผ ๋ฐฉ๋ฒ•

import java.util.*;
import java.io.*;

public class Main {
	
	public void solution(int n) {
		
		int result = 0;
		int nTmp = n;
		 
		// ํ™€์ˆ˜์ผ๋•Œ
		if(n%2 != 0) {
        	// 1 ๋”ํ•ด์„œ ์ง์ˆ˜๋กœ ๋งŒ๋“ค์–ด์คŒ
			nTmp = n+1;
		}
		
        // 2๋กœ ๋‚˜๋ˆ„๊ณ  +1 ํ•˜์—ฌ  ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰
		for(int i=1; i<(nTmp/2)+1; i++) {
			
			int sum = 0;
            
			for(int j=i; j<(nTmp/2)+1; j++) {
				// ํ•˜๋‚˜์”ฉ ๋”ํ•จ
				sum += j; 
				
                // ๋”ํ•˜๋‹ค๊ฐ€ n๊ณผ ๊ฐ™์•„์ง€๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ +1 ํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ 
				if(sum == n) {
					result ++;
					break;
				}
				// n๋ณด๋‹ค ๋†’์•„์ง€๋ฉด ๋ฐ˜๋ณต๋ฌธ ํƒˆ์ถœ
				if(sum > n) {
					break;
				}
				
				
			}
		}
		
		System.out.print(result);
	}

	public static void main(String args[]) {
        Main main = new Main();
		Scanner in= new Scanner(System.in);
        int n = in.nextInt();
      
        main.solution(n);
    }

}

2. two point์•Œ๊ณ ๋ฆฌ์ฆ˜

import java.util.*;
import java.io.*;

public class Main {
	
	public void solution(int n) {
		
		int result = 0;
		int lt = 0;
		int nTmp = n/2+1;
		int sum = 0;
		int[] array = new int[nTmp];
		
		for(int i=0; i<nTmp; i++) {
			array[i] = i+1;
		}
		
		for(int rt=0; rt<nTmp; rt++) {
			sum += array[rt];
			if(sum == n) {
				result ++;
			}
			
			while(sum>=n) {
				sum -= array[lt++];
				if(sum == n) {
					result ++;
				}
			}
		}
		
		System.out.print(result);
	}

	public static void main(String args[]) {
        Main main = new Main();
		Scanner in= new Scanner(System.in);
        int n = in.nextInt();
      
        main.solution(n);
    }

}
Comments