[구름 알고리즘 먼데이 챌린지] 1주차 | 문제4 소수 찾기 | 파이썬

2022. 10. 12. 00:48·Algorithm/구름 알고리즘 먼데이 챌린지

1주차 | 문제 4. 소수 찾기

문제

정수로 이루어진 수열 A에 있는 수들을 합한 값을 구하기로 한다. 하지만 평범한 합하기는 너무 쉽게 구해지기 때문에, 새로운 조건을 추가하여 값을 추출하고, 추출된 모든 값을 합하기로 한다. 새로운 조건은 아래와 같다.

  • 수열 A의 i번째 수를 A_i라고 부른다.
  • i가 소수인 A_i를 추출한다.

조건에 따라서 추출된 값들을 모두 합하고, 그 값을 출력하시오.

입력

첫 번째 줄에 수열 A의 길이를 나타내는 양의 정수 n(1≤n≤100,000)이 주어진다. 두 번째 줄에 수열 A의 각 원소의 값 A_i(-100≤A_i≤100)가 공백으로 구분되어 총 n개가 주어진다.

i 번째 수는 A_i의 값이고, 정수이다.

출력

i가 소수인 A_i값들을 합한 값을 출력한다.


풀이

import math

def is_Prime(x):
	if x>=2: # 2보다 큰 수만 소수인지 판별함
		for i in range(2, int(math.sqrt(x))+1): # n의 약수는 n의 제곱근 범위 안에 있다는 것을 활용
			if x%i==0: # i로 나누어 떨어지면(=약수이면) n은 소수가 아니므로 False 
				return False
		return True
	else: # 2보다 작은 1과 0은 소수가 아니므로 False
		return False

n=int(input())
a=list(map(int,input().split()))

sum=0
for i in range(1,n+1):
	if is_Prime(i): # i가 소수이면 i번째 수인 a[i-1]을 더함
		sum+=a[i-1]
		
print(sum)

일반적인 소수 찾기 방법을 이용하여 풀이하였다.

문제 자체의 모호한 부분이 있었다. i번째 수라는 말이 리스트의 인덱스자체를 의미하는지(i=0이면 0번 인덱스), 숫자 세듯이 인덱스 0의 값을 1번째 수로 가정하는지(i=1이면 0번 인덱스)에 대한 언급이 없었기 때문에 sum을 하는 과정에서 어려움을 겪었다.

문제 자체로는 확실한 이해를 할 수 없었으며, 케이스 테스트를 통해 후자의 경우가 이 문제의 해답임을 알 수 있었다.

따라서 a[i-1]을 누적하는 방식을 채택하고 해결할 수 있었다.

 

저작자표시 (새창열림)
'Algorithm/구름 알고리즘 먼데이 챌린지' 카테고리의 다른 글
  • [구름 알고리즘 먼데이 챌린지] 2주차 | 문제2 공통 문자열 | 파이썬
  • [구름 알고리즘 먼데이 챌린지] 2주차 | 문제1 합격자 찾기 | 파이썬
  • [구름 알고리즘 먼데이 챌린지] 1주차 | 문제3 최장 맨해튼 거리 | 파이썬
  • [구름 알고리즘 먼데이 챌린지] 1주차 | 문제2 동명이인 | 파이썬
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (46)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
[구름 알고리즘 먼데이 챌린지] 1주차 | 문제4 소수 찾기 | 파이썬
상단으로

티스토리툴바