본문 바로가기
백준 알고리즘

백준 - 10823번 더하기 2 python 문제풀이 [Hellfer]

by Hellfer 2023. 12. 11.
728x90

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

 

10823번: 더하기 2

문자열 S가 여러 줄에 걸쳐서 주어진다. S의 길이는 최대 10,000이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

🔷 알고리즘 분류 - 수학, 문자열, 파싱 난이도 - 브론즈 1

1. sys.stdin.read(): 이 함수는 표준 입력으로부터 문자열을 읽어옵니다.

특히, EOF(End Of File)가 나올 때까지 입력을 계속 읽어옵니다. 따라서, 여러 줄에 걸쳐 입력을 받는 경우에 유용합니다.


2. replace(x, y): 이 함수는 문자열에서 x 문자열을 찾아 y 문자열로 교체합니다. 만약 x 문자열이 여러 개 있는 경우, 모든 x 문자열을 y 문자열로 교체합니다.

이 함수는 원본 문자열을 변경하지 않고, 교체된 새로운 문자열을 반환합니다.


3. split(separator): 이 함수는 문자열을 separator 문자열을 기준으로 분리하여 리스트로 만듭니다.

만약 separator를 생략하면 공백을 기준으로 분리합니다. 이 함수는 원본 문자열을 변경하지 않고, 분리된 새로운 리스트를 반환합니다.


4. sum(iterable): 이 함수는 iterable(반복 가능한 객체, 예: 리스트, 튜플 등)의 모든 요소를 더합니다.

iterable의 요소가 숫자가 아니면 에러를 발생시킵니다.


5. int(string): 이 함수는 문자열 형태의 숫자를 정수로 변환합니다.

만약 문자열이 숫자 형태가 아니면 에러를 발생시킵니다.


6. print(value): 이 함수는 value를 출력합니다.

value는 어떤 데이터 형태도 가능하며, 여러 개의 값을 쉼표로 구분하여 출력할 수 있습니다.

기본적으로 출력 후에는 줄 바꿈을 수행합니다.

🔶문제풀이 - replace함수를 이용한 풀이

# sys 모듈을 import 합니다. 이 모듈을 통해 표준 입력을 읽어올 수 있습니다.
import sys

# sys.stdin.read()는 사용자로부터 EOF(End Of File)가 나올 때까지 입력을 받습니다.
# 받은 입력에서 줄바꿈 문자('\n')를 제거하고, 쉼표(',')를 기준으로 문자열을 분리하여 리스트로 만듭니다.
x = sys.stdin.read().replace('\n', '').split(',')

# 리스트 x의 각 요소는 문자열 형태의 숫자입니다.
# 이를 int() 함수를 이용해 정수로 변환하고, sum() 함수를 이용해 모든 숫자를 더합니다.
total = sum(int(i) for i in x)

# 결과를 출력합니다.
print(total)

🔶문제 이해하기

sys.stdin.read(). replace(' \n', ''). split(', ') 코드는 표준 입력으로 여러 줄에 걸쳐 받은 데이터에서 줄 바꿈을 제거하고, 쉼표를 기준으로 분리하는 작업을 수행합니다.

예를 들어, 아래와 같은 입력이 주어졌다고 가정해 보겠습니다.

 

10,20,
3
0,50
,1
00

 

이를 sys.stdin.read()로 읽어오면,

문자열은 아래와 같이 저장됩니다.

 

'10,20,
 3
 0,50
 ,1
 00'


이후 replace('\n', '')를 통해 모든 줄 바꿈 문자를 제거하면, 문자열은 '10,20,30,50,100'가 됩니다.

 

마지막으로 split(', ')를 통해 쉼표를 기준으로 문자열을 분리하면, 최종적으로 ['10', '20', '30', '50', '100']라는 리스트를 얻게 됩니다.

 

이 리스트의 각 요소는 문자열 형태의 숫자입니다.

 

이를 int() 함수를 이용해 정수로 변환하면 문제 해결에 필요한 데이터를 얻을 수 있습니다.

 

🤗파이팅입니다~ 여러분!!🤗

 
728x90