https://www.acmicpc.net/problem/4458
🔎 두 가지 방법
이 문제를 구상할 때 문자열은 불변 데이터이므로, 새로 정의해줘야 하는 번거로움을 피하기 위해 list로 작성했습니다. 하지만 (이 문제에 한해서) 둘의 속도 차이는 별로 크지 않았고, 두 방법을 적재적소에 사용하기 위해 다 익혀놓는 것이 좋을 거라 생각해서 두 가지 모두 구현해보았습니다.
💻 list를 활용한 구현
n = int(input())
for _ in range(n):
s = list(input())
s[0] = s[0].upper()
print(''.join(s))
파이썬의 join 함수를 활용하여 리스트를 문자열로 변경해주었습니다. join 함수는 문자열을 결합하는 함수로, 문자열을 구분하는 split 함수와 반대의 역할을 한다고 이해했습니다. "".join(리스트) 형식으로 사용합니다.
💻 문자열을 활용한 구현
n = int(input())
for _ in range(n):
s = input()
new = s[0].upper()+s[1:]
print(new)
첫번째 글자에만 upper 함수(소문자->대문자)를 적용하고 나머지 인덱스를 그대로 붙여서 문자열을 새로 정의했습니다.
📝 막간을 이용한 list(mutable)와 문자열(immutable)의 비교
1. 리스트 는 mutable 문자열은 immutable입니다. immutable data는 원소를 추가하는 것은 가능하지만, 인덱스를 통해 변경하는 것은 불가능하기 때문에, 새로 정의를 해서 사용해야 합니다. 불변 데이터는 메모리 내용 자체를 수정할 수 없기 때문입니다. 이렇게 불변 자료형은 매번 값을 새로 정의해서 사용해야 하기 때문에 성능에서 불리한 면이 있습니다. 단점만 있는 것은 아닙니다. 장점으로는 변경이 불가능하기 때문에 안정성을 보장합니다.
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/C] 10797번 (0) | 2023.01.04 |
---|---|
[백준/Python] 20540번 연길이의 이상형 (0) | 2023.01.04 |
[백준/python] 15917번 (0) | 2023.01.03 |
[백준/Python3] 2935번 소음 (0) | 2023.01.02 |
9기 기초 알고리즘 스터디 출석부 (0) | 2023.01.01 |