mooonπŸŒ™
STUDY
mooonπŸŒ™
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (170)
    • μ½”λ”© ν…ŒμŠ€νŠΈ (147)
      • λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜ (53)
      • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1 (13)
      • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ½”λ”© ν…ŒμŠ€νŠΈ μž…λ¬Έ (54)
      • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] SQL 고득점 Kit (27)
    • BACK (4)
      • Spring (3)
      • PHP (0)
    • FRONT (5)
    • DevOps (8)
      • Jenkins (8)
    • GitHub🌱 (2)
    • λ°μ΄ν„°λ² μ΄μŠ€ (1)
      • SQL (1)
    • Error πŸ’₯ (0)
      • php (2)
    • πŸ˜‹ (1)

λΈ”λ‘œκ·Έ 메뉴

  • ⭐ κΉƒν—ˆλΈŒ
  • πŸ’• λ°©λͺ…둝
  • πŸ’₯ νƒœκ·Έ

인기 κΈ€

νƒœκ·Έ

  • μ½”λ”©ν…ŒμŠ€νŠΈ μž…λ¬Έ
  • μ•Œκ³ λ¦¬μ¦˜
  • SQL 고득점 Kit
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
  • c++
  • SQL
  • λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ°
  • DevOps
  • λ°±μ€€
  • Python

졜근 κΈ€

250x250
hELLO Β· Designed By μ •μƒμš°.
mooonπŸŒ™

STUDY

μ½”λ”© ν…ŒμŠ€νŠΈ/λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜

λ°±μ€€ 1644 _ μ†Œμˆ˜μ˜ 연속합

2020. 4. 26. 18:47
728x90

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

 

1644번: μ†Œμˆ˜μ˜ 연속합

문제 ν•˜λ‚˜ μ΄μƒμ˜ μ—°μ†λœ μ†Œμˆ˜μ˜ ν•©μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” μžμ—°μˆ˜λ“€μ΄ μžˆλ‹€. λͺ‡ κ°€μ§€ μžμ—°μˆ˜μ˜ 예λ₯Ό λ“€μ–΄ 보면 λ‹€μŒκ³Ό κ°™λ‹€. 3 : 3 (ν•œ κ°€μ§€) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (μ„Έ κ°€μ§€) 53 : 5+7+11+13+17 = 53 (두 κ°€μ§€) ν•˜μ§€λ§Œ μ—°μ†λœ μ†Œμˆ˜μ˜ ν•©μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μ—†λŠ” μžμ—°μˆ˜λ“€λ„ μžˆλŠ”λ°, 20이 κ·Έ μ˜ˆμ΄λ‹€. 7+13을 κ³„μ‚°ν•˜λ©΄ 20이 λ˜κΈ°λŠ” ν•˜λ‚˜ 7κ³Ό 13이 연속이 μ•„λ‹ˆκΈ°μ— μ ν•©ν•œ ν‘œν˜„μ΄ μ•„λ‹ˆλ‹€. λ˜ν•œ ν•œ

www.acmicpc.net


⭐ λ‚΄ μ†ŒμŠ€ μ½”λ“œ

#include<iostream>
#include<vector>
using namespace std;


int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	int num,count=0,sum=0;
	cin >> num;
	vector<int>vec;
    
	for (int i = 1; i <= num; i++) {
		vec.push_back(i);
	}
    
	vec[0] = 0;
    
    //μ†Œμˆ˜ κ΅¬ν•˜κΈ°
	for (int i = 2; i <= num; i++) {
		if (vec[i - 1] == 0) continue;
		for (int j = 2; j*i <= num; j++) {
			vec[j*i - 1] = 0;
		}
	}

	//μ—°μ†λœ μ†Œμˆ˜λ“€μ˜ ν•© κ΅¬ν•˜κΈ°
	for (int i = 0; i < vec.size(); i++) {
		if (vec[i] == 0) continue;
		for (int j = i; sum <= num; j++) {
			if (j < vec.size()) {
				if (vec[j] != 0) {
					sum += vec[j];
					if (sum == num) {
						count++;
						break;
					}
				}
			}
			else break;
		}
		sum = 0;
	}
	cout << count;
	
	return 0;
}

 

πŸ™ 문제 풀이

#μ—°μ†λœ μ†Œμˆ˜λ“€μ˜ ν•© κ΅¬ν•˜κΈ°

  • iλŠ” λ§μ…ˆμ„ μ‹œμž‘ν•  μ†Œμˆ˜λ₯Ό μ§€μ •
  • jλŠ” iλΆ€ν„° μ‹œμž‘ν•˜μ—¬ μ†Œμˆ˜λ“€μ˜ 합계가 num 보닀 컀지기 μ „κΉŒμ§€ μ†Œμˆ˜λ“€μ„ μ°¨λ‘€λŒ€λ‘œ λ”ν•œλ‹€
  • λ”ν•œ μ†Œμˆ˜μ˜ 합이 numκ³Ό κ°™μ•„μ§ˆ 경우 경우의 수λ₯Ό μ¦κ°€μ‹œμΌœμ€€λ‹€
  • λ”ν•œ μ†Œμˆ˜μ˜ 합이 num보닀 컀질 경우, 합계λ₯Ό 0으둜 μ΄ˆκΈ°ν™”ν•˜κ³  κ·Έλ‹€μŒ μ†Œμˆ˜λΆ€ν„° μ°¨λ‘€λŒ€λ‘œ 더해본닀
728x90
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)
    'μ½”λ”© ν…ŒμŠ€νŠΈ/λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • λ°±μ€€ 2960 _ μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체
    • λ°±μ€€ 3896 _ μ†Œμˆ˜ 사이 μˆ˜μ—΄
    • λ°±μ€€ 1016 _ 제곱 γ„΄γ„΄ 수
    • λ°±μ€€ 10773 _ 제둜
    mooonπŸŒ™
    mooonπŸŒ™
    개발 곡뢀 기둝

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”