??!
입력 받은 문제 뒤에 ??!를 붙여 출력하는 문제입니다.
이번 문제를 풀기전 정답 비율을 한번 보겠습니다.
정답 비율은 약 50%로 높지 않은 정답 비율이라고 생각합니다. 문제를 먼저 다양한 방법으로 풀어보고 다른 사람들의 오답 코드를 분석해보겠습니다.
먼저 입력은 단 하나의 문자열만 받습니다.
저는 입력받은 문자를 text라는 변수로 할당하겠습니다.
첫번째 풀이 입니다.
단순하게 +연산자를 사용하여 문자열을 연결했습니다. ,와 차이점은 ,는 다른 형태의 자료형들을 한번에 받을 수 있지만 + 는 같은 형태의 자료형만 받을 수 있습니다 .
Ex_ str + str , int+ int, float+ float , double + double
text = input()
print(text+'??!')
두번째 풀이 입니다.
f - string은 문자열 포맷팅을 간단하게 해주는 기능입니다. python 3.6이상부터 구현 가능하며 앞으로 다양한 문제 혹은 코드에서 볼 수 있습니다. 매우 편리하며 앞으로 사용법을 익히는게 중요 포인트라고 생각합니다.
text = input()
print(f"{text}??!")
세번째 풀이 입니다.
format() 메서드를 사용하여 문자열을 포맷팅할 수도 있습니다
text = input()
print("{}??!".format(text))
네번째 풀이 입니다.
리스트와 join() 메서드를 활용하여 문자열을 연결할 수도 있습니다.
이는 이 문제에서 굳이 필요없는 풀이 법이지만 소개하면 좋을 거 같아서 소개했습니다.
text = input()
result = ''.join([text, "??!"])
print(result)
다섯번째 풀이 입니다.
파이썬에서 + 연산자는 내부적으로 __add__() 메서드를 호출합니다. 이를 직접사용할 수도 있습니다.
나중에 함수와 메서드를 깊게 알기 위해서 먼저 소개했습니다. 이는 기본 개념이지만 뒤에서 더 깊게 나아갈 수 있도록 먼저 소개했습니다.
char = input()
result = char.__add__("??!")
print(result)
여섯번째 풀이 입니다.
input() 대신 sys에서 readline() 을 통해서 입력을 받았습니다. 이는 input()보다 빠르게 동작하며 rstrip() \n 즉 줄바꿈 문자를 제거합니다. 나중에 시간복잡도를 줄이기 위해서 사용하므로 뒤에서 더 자세하게 다루겠습니다.
import sys
text = sys.stdin.readline().rstrip()
print(text + "??!")
다음은 다른 사람들의 오답 코드를 확인해보도록 하겠습니다.
이 아래 코드는 단순하게 f- string 을 올바르지 않게 사용하여 틀린 것을 알 수 있습니다.
다른 사람들은 거의 비슷하게 아래와 같은 오답 풀이를 하였습니다.
이는 입력을 받는 것 자체가 무의미한 예외처리 방식입니다.
예외처리 방식과 비슷하므로 특정 jonnas에만 작용합니다. 모든 입력받은 문자열에 대해서는 작동하지 않기 떄문에 오답입니다.
'BaekJoon Reivew' 카테고리의 다른 글
단계별로 풀어보기 백준_10430번 (0) | 2025.02.02 |
---|---|
단계별로 풀어보기 백준_18108 (0) | 2025.02.02 |
단계별로 풀어보기 백준_10869번 (0) | 2025.02.01 |
단계별로 풀어보기_백준 10998번 (0) | 2025.01.27 |
단계별로 풀어보기_백준 1001번 with Python (0) | 2025.01.24 |