1. 문제 설명
문제 링크: 프로그래머스 - 문자열 붙여서 출력하기
두 개의 문자열 str1과 str2가 공백으로 구분되어 입력으로 주어질 때, 두 문자열을 붙여서 붙인 문자열을 출력하는 코드를 작성하는 문제입니다.
2. 접근 방식 및 풀이
이 문제는 입력받은 2개의 단어를 붙여서 공백 없이 그대로 출력하는 것이 핵심입니다. 파이썬에서는 다양한 방법으로 두 문자열을 결합할 수 있습니다.
split()과+연산자 활용:- 입력 전체를 공백 기준으로 나누어 각각
str1,str2변수에 저장합니다. +연산자를 사용해 두 문자열을 이어 붙입니다 (str1 + str2).
- 입력 전체를 공백 기준으로 나누어 각각
replace()활용:- 입력받은 문자열 전체에서 띄어쓰기 공백(
" ")을 빈 문자열("")로 치환하여 한꺼번에 제거합니다.
- 입력받은 문자열 전체에서 띄어쓰기 공백(
print()함수 속성 활용:print(str1, str2, sep="")와 같이 출력 시 구분자(sep)의 기본값(공백)을 제거해 붙여서 출력할 수 있습니다.
3. 결과
방법 1: + 연산자로 붙여서 출력
PYTHON
# 공백을 기준으로 입력받은 두 문자열을 split()으로 각각 저장합니다.
str1, str2 = input().strip().split(' ')
# + 연산자로 두 문자열을 결합하여 출력합니다.
print(str1 + str2)
방법 2: f-string 문법 활용
PYTHON
str1, str2 = input().strip().split(' ')
# f-string을 활용해 붙여서 출력
print(f"{str1}{str2}")
방법 3: replace() 함수로 공백 제거
PYTHON
# 입력받은 문자열 내의 모든 공백을 제거하고 출력
print(input().replace(" ", ""))
4. 복잡도 분석
- 시간 복잡도: O(L)
- 문자열의 총 길이를 L이라 할 때, 입력 및 분리/결합 연산은 문자열 길이에 비례하므로 O(L)입니다. 문자열 길이가 최대 10으로 매우 작으므로 즉시 실행됩니다.
- 공간 복잡도: O(L)
- 입력 문자열과 분리된 문자열을 저장할 변수 공간만큼 O(L)의 메모리를 사용합니다.
5. 깨달은 점
- 파이썬의
input().split()은 기본적으로 띄어쓰기(공백)를 기준으로 문자열을 잘라 리스트 형태로 반환한다는 기본기를 다질 수 있었습니다. - 문자열 결합에는
+연산자 외에도f-string,join(),replace()등 여러 방식이 존재하며, 상황에 맞는 직관적이고 깔끔한 코드를 선택하는 감각을 익힐 수 있었습니다.
![[프로그래머스] 문자열 붙여서 출력하기 (Python)](https://app.notion.com/images/page-cover/nationalMuseumOfAsianArt_gardenSceneMelonsEggPlantsFlowersAndTwoWeasels.jpg)