백준 알고리즘
백준 - 10821번 정수의 개수 python 문제풀이 [Hellfer]
Hellfer
2023. 12. 10. 22:21
728x90
https://www.acmicpc.net/problem/10821
10821번: 정수의 개수
숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 정수의 개수를 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지
www.acmicpc.net
🔷 알고리즘 분류 - 문자열, 파싱 난이도 - 브론즈 2
1. 문자열 파싱: 파이썬의 split() 메서드를 사용하면 문자열을 공백이나 특정 구분자를 기준으로 분할할 수 있습니다.
이는 여러 개의 입력값이 한 줄에 주어질 때 유용합니다.
data = input().split() # 공백으로 구분된 입력값 받기
2. 정수 변환: map 함수와 int 함수를 조합하면 문자열로 이루어진 리스트를 정수로 이루어진 리스트로 한 번에 변환할 수 있습니다.
data = list(map(int, input().split())) # 공백으로 구분된 정수 입력 받기
3. 리스트 컴프리헨션: 리스트 컴프리헨션을 활용하면 파싱 과정을 간결하게 표현할 수 있습니다.
data = [int(x) for x in input().split()] # 공백으로 구분된 정수 입력 받기
🔶글쓴이의 풀이 - 구현을 이용한 풀이
# 사용자로부터 문자열을 입력받습니다.
x = input()
# 콤마의 개수를 저장할 변수를 선언하고, 초기값으로 1을 설정합니다.
count = 1
# 결과를 저장할 빈 리스트를 생성합니다.
result = []
# 사용자가 입력한 문자열 x를 result 리스트에 추가합니다.
result.append(x)
# 리스트에 저장된 문자열을 결합하여 하나의 문자열로 만듭니다.
y = (''.join(result))
# 생성된 문자열 y의 각 문자를 순회합니다.
for i in y:
# 현재 문자가 콤마일 경우, 콤마의 개수를 1 증가시킵니다.
if i == ',':
count += 1
# 콤마의 개수를 출력합니다.
print(count)
🔶다른 문제풀이 - 파싱을 이용한 풀이
# 사용자로부터 문자열을 입력받습니다.
x = input()
# 입력받은 문자열 x를 콤마(,)를 기준으로 분리하여 리스트 y를 생성합니다.
# 예를 들어, x가 '1,2,3'이라면 y는 ['1', '2', '3']이 됩니다.
y = x.split(',')
# 리스트 y의 길이(즉, 원소의 개수)를 출력합니다.
# 이는 콤마를 기준으로 분리한 문자열의 개수와 동일합니다.
print(len(y))
🔶문제 이해하기
# 사용자로부터 문자열을 입력받습니다.
# 예를 들어, "apple,banana,orange"을 입력했다고 가정해봅시다.
x = input()
# 입력받은 문자열 x를 콤마(,)를 기준으로 분리하여 리스트 y를 생성합니다.
# 이 경우, y는 ['apple', 'banana', 'orange']가 됩니다.
y = x.split(',')
# 리스트 y의 길이(즉, 원소의 개수)를 출력합니다.
# 이는 콤마를 기준으로 분리한 문자열의 개수와 동일합니다.
# 이 경우, 출력 결과는 3이 됩니다.
print(len(y))
🤗파이팅입니다~ 여러분!!🤗
728x90