문제 설명
첫 번째 라인에 두 번째 라인의 문자열의 길이가 주어집니다.
두 번째 라인에 랜덤 수열이 주어집니다.
위 두 라인을 입력받았으면 랜덤 수열에있는 수를 서로 더해줍니다.
예를들어 두번째 라인의 입력이 123
일 경우 1 + 2 + 3
즉 6
을 출력하는 프로그램을 작성합니다.
하지만 입력값으로 0
이 주어질 경우는 생략합니다.
풀이
완성된 코드는 다음과 같습니다.
1
2
3
4
5
6
string_count = int(input())
string = list(input())
res = 0
for i in range(string_count):
res += int(string[i])
print(res)
우선 첫 번째 라인은 몇자의 수열이 주어질것인지 입력받고, int()
함수를 사용하여 문자형 자료형에서 정수형 자료형으로 형변환을 해준 뒤 string_count
변수에 저장합니다.
이제 첫 번째 라인을 입력받았으니 두 번째 라인을 입력받습니다.
두 번째 라인에서는 랜덤 수열을 입력받게되고 이 수열은 후에 한 자리, 한 자리씩 끊어서 연산처리를 해주어야하기때문에 입력을 받은 후 문자형 자료형에서 리스트형 자료형으로 형변환합니다.
이렇게 문자열을 list()
함수를 사용해서 리스트 자료형으로 변환하게 될 경우 문자열의 한 글자 한 글자가 인덱싱되어 저장됩니다.
1
2
string_count = int(input())
string = list(input())
res
변수를 0으로 초기화합니다.
res
변수는 추후 아래의 반복문에서 연산처리된 값을 저장하고 출력하는 역할을 수행합니다.
이어서 for
문을 사용하여 string_count
변수에 들어있는 값만큼 반복을 진행한다. for
문의 내용은 다음과 같습니다.
res
변수에 저장된값에 정수형 자료형으로 변환된 string
의 아이템중 i
번째를 이어서 더하여 저장하며, 위의 과정이 끝나면 res변수에 최종 저장되어있는 값을 출력하고 프로그램을 종료합니다.
1
2
3
4
res = 0
for i in range(string_count):
res += int(string[i])
print(res)
실행 결과
입력받은 값이 3
, 123
일 경우에 출력 결과는 다음과 같습니다.
1
6
입력받은 값을 출력하다가
EOF Error
가 발생하면 프로그램을 종료합니다.