한 걸음씩
[백준][python] 9093 단어 뒤집기 본문
https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
풀이 과정 1
1. 입력받은 수만큼 for loop이 돌아가고
2. for loop 안에서 공백으로 구분해서 문자가 입력받아지고
3. 하나하나 뒤집어서 출력하면 된다
T = int(input())
for t in range(T):
sen = input().split()
for s in range(len(sen)):
new = "".join(reversed(sen[s]))
print(new, end=" ")
4. 문자열을 뒤집는 방법은 여러 가지가 있는데 [::-1]처럼 리스트를 사용하는 방법과 위의 방법처럼 reversed를 사용하는 방법이 있다
🔆 join은 split과 반대 역할을 하는 함수다! 문자열 합치기와 문자열 나누기!
풀이 과정 2
1. for loop range에서 테스트 케이스를 입력받고
2. 주어진 문장을 입력한다 (sen)
3. 그 다음 for loop을 돌리는데 sen길이를 range범위로 잡고 [::-1] 문자열 슬라이싱으로 하나하나 뒤집어 준다음 출력하는데
기본적으로 개행이 들어가있기 때문에 end 함수를 사용해서 한줄로 출력해줘야한다
4. print() << 이 부분은 문장간의 개행을 위해서!
for i in range(int(input())):
sen = input().split()
# print(sen) ['I', 'am', 'happy', 'today']
for i in range(len(sen)):
print(sen[i][::-1], end=" ")
print()
리뷰
첫 번째 시도 )
문자열을 하나하나 뒤집는 거에서 살짝 멈칫했지만 구글링으로 뒤집는 방법을 검색해서 풀었다!
다시 한번 풀어보는 게 좋을 것 같다
두 번째 시도 )
첫 번째 시도 때 사용한 join함수는 문제 풀 때 자주 사용하는 함수가 아니라서 두 번째 시도 때 생각을 못했다
reverse() 함수로 뒤집으려고 했는데 list 함수라서 'str' object has no attribute 'reverse' 에러 발생
결국은 reversed 함수를 사용하거나 리스트 슬라이싱을 해줘야해서 슬라이싱으로 풀었긴했지만 시간이 좀 걸렸다..
'BOJ' 카테고리의 다른 글
[백준][python] 2675 문자열 반복 (0) | 2023.01.24 |
---|---|
[백준][python] 7785 회사에 있는 사람 ✅ (1) | 2023.01.24 |
[백준][python] 2947 나무 조각 (0) | 2023.01.24 |
[백준][python] 1110 더하기 사이클 ✅ (0) | 2023.01.24 |
[백준][python] 5622 다이얼 (0) | 2023.01.24 |