강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Solioquies님의 프로필 이미지
Solioquies

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

6. 자릿수의 합

안녕하세요 질문입니다.

작성

·

140

0

문제에서 n으로 입력 후 그 수만큼 도는거였는데 선생님 코드로 하면 n을 1을 하던 100만을 하던 n에 관계없이 실행 되네요. 

input.split으로 입력하면 여러 입력을 그냥 관계없이 무한정 입력 가능한가요? n을 입력했는데 쓰이지 않아서 여쭤봤습니다.

for (i = 1; i <= n; i++) {

scanf("%d", &num);

sum = digit_sum(num); //

if (sum > max) {

max = sum;

res = num;

}

그리고 파이썬은 이렇게 for문에 조건들 못 주는지도 궁금합니다.

 import sys

#sys.stdin=open("input.txt", "r")
def digit_sum(x):
sum=0
while x>0:
sum+=x%10
x=x//10
return sum

n=int(input())

while(n >0):
#a=list(map(int, input().split()))
a=int,(input());
a= list(a);
n-=1;

res=0
#max=-2147000000
max=float('-inf')


for x in a:
tot=digit_sum(x)
if tot>max:
max=tot
res=x
print(res)

파이썬은 잘 몰라서 while문이랑 for문 조건 달아서 n개수만큼 입력 input()하나로 여러번 입력  해주고싶은데.. 에러나서 질문 드립니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

사실 여기 문제 자체가 C++형으로도 사용하는 문제라 그렇습니다. 파이썬에서는 굳이 n이 필요없이 한 줄로 뛰어쓰기 되어 들어오면 input().split()으로 읽으면 됩니다.

파이썬으로 반목문안에서 하나씩 읽으려면 입력자체가 한 줄로 뛰어쓰기 되어 들어오면 안되고 아래처럼 각 값들이 줄바꿈되어 들어와야 합니다.

3

125

15232

97

Solioquies님의 프로필 이미지
Solioquies

작성한 질문수

질문하기