๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 1789๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ(๊ตฌํ˜„)

by ์ฃผ๋ฐœ2 2020. 3. 4.
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1789

 

1789๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ S(1 ≤ S ≤ 4,294,967,295)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long num = scan.nextLong();
		long sum = 0;
		int count = 0;
		
		for(int i=1; ; i++) {
			if(sum > num)	break;
			sum += i;
			count ++;
		}
		System.out.println(count-1);
		scan.close();
	}

}

ํ’€์ด

์ƒ๊ฐ๋ณด๋‹ค ์—„์ฒญ ๋‹จ์ˆœํ•œ ๋ฌธ์ œ์˜€๋‹ค.

์„œ๋กœ ๋‹ค๋ฅธ N๊ฐœ์˜ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์ด S๋ผ๊ณ  ํ•œ๋‹ค. S๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, N์˜ ์ตœ๋Œ“๊ฐ’์€ ? 

์ฆ‰ ์„œ๋กœ ๋‹ค๋ฅธ N๊ฐœ๋ฅผ ๊ตฌํ•ด S๊ฐ€ ๋˜๋Š” N์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋‹ค.

N์ด ์ตœ๋Œ“๊ฐ’์ด ๋˜๋ ค๋ฉด ? ๊ฐ€์žฅ ์ž‘์€์ˆ˜๋“ค๋ถ€ํ„ฐ ๋”ํ•ด๊ฐ€์•ผํ•œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด S = 50์ด๋ผ๊ณ  ํ•ด๋ณด์ž,

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55 ์ด๋‹ค.

์ด๋•Œ, 5๋งŒ ๋นผ์ฃผ๋ฉด ํ•ฉ์€ 50์ด ๋˜๊ณ , N์˜ ์ตœ๋Œ“๊ฐ’์ด ๋œ๋‹ค.

์ฆ‰, 1๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ˆซ์ž๋ฅผ ๋”ํ•ด S๋ณด๋‹ค ํฐ ๊ฐ’์„ ์ฐพ๊ณ , ๊ทธ๋•Œ count -1์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

* ์ฃผ์–ด์ง„ S์˜ ๋ฒ”์œ„๋•Œ๋ฌธ์— int๊ฐ€ ์•„๋‹Œ long์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€