• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

46번,48번,50번 질문입니다

19.11.12 17:12 작성 조회수 159

0

46번
s = 0
for i in list(range(21)):
    for j in str(i): #이부분이 왜 필요한건가요? s += int(i)를 바로 하면 안되는 이유가 이해가 잘 안되서요...
        s += int(j)
print(s)
48번
n = input()

m = []

for i in n:
    if i != i.upper():
        m.append(i.upper())
    else:
        m.append(i.lower())

for j in m:
    print(j,end='')
이렇게 해도 맞는건가요?
50번
for j in range(n - i -1):
이부분만 잘 이해가 안되서요...
또 전체코드를 실행해 보니까
n = 3
data = 5 7 4 9 8
이렇게 실행해봤는데
결과값이 4 5 7이 나왔어요.
마지막 자리에 들어가는 8 9는 삭제됬는데
버블정렬은 sort와 같은 기능이 아닌건가요?

답변 5

·

답변을 작성해보세요.

0

Soohwan Ko님의 프로필

Soohwan Ko

2019.11.16

50번 모범 답변에서 n = int(input()) 하면 에러가 나옵니다. 대신

a = input()

data = list(map(int,a.split()))

n = len(data) 로 해야 할 것 같네요.

0

난뀨님의 프로필

난뀨

질문자

2019.11.13

감사합니다! 버블정렬이 뭔가 제일 복잡하네요 많이 쓰인다고 하니까 외우는게 맞겠죠 ㅠ

0

50번에서 n은 자릿수입니다.^^ 위와 같이 하시기 위해서는

입력값은

5

1 4 3 2 6

이런 식으로 입력을 하셔야 합니다. 말씀해주신 것처럼 버블 정렬은 sort(), sorted()와 결과값이 같습니다.

0

48번은 code 상 문제가 없어보입니다. :)
잘 푸셨습니다! :)

n = input()

m = []

for i in n:

    if i != i.upper():

        m.append(i.upper())

    else:

        m.append(i.lower())

for j in m:

    print(j,end='')

0

안녕하세요 난뀨님!! 답장이 늦어 죄송합니다.ㅜㅜ

우선 46번 입니다. 문제를 보시면  각 숫자를 일렬로 놓고 모든 자릿수의 총 합을 구하는 문제입니다. 예를 들어 1123은 숫자 천백이십삼이 아니라 1, 1, 2, 3으로 각각 더해줘서 7로 출력해야 하는 문제이니,  str으로 순회를 해서 int로 바꾼 다음 더하는 것이 맞습니다.

for i in '10111213':
    result += int(i)

이 코드는 10부터 13까지 각 자릿수의 합을 구하는 코드입니다.^^

- 46번 문제 -

1부터 100까지의(100을 포함) 모든 숫자를 일렬로 놓고 모든 자릿수의 총 합을 구하세요. 예를 들어 10부터 15까지의 모든 숫자를 일렬로 놓으면 101112131415이고 각 자리의 숫자를 더하면 25입니다.