[백준] 9093 단어 뒤집기 파이썬 풀이
2021. 3. 25. 13:21ㆍ알고리즘
※ 사용언어 : 파이썬 ※
▼ 문제 링크 ▼
※ 파이썬은 다른 언어와 다르게 stack이 따로 구현되어있지 않다. 대신 자료형 list가 stack 형태로 만들어져 있어 list를 이용해 stack를 사용한다.
※ 해당 포스터에서는 stack의 개념으로 푼 풀이와 파이썬 list 내부에서 제공해주는 기능을 이용한 풀이가 작성되어있다.
Stack 자료 구조를 이용한 풀이
N=int(input())
for i in range(N):
string=input()
string+=" "
stack=[]
for j in string:
if j!=" ":
stack.append(j)
else:
while stack:
print(stack.pop(), end='')
print(' ', end='')
◇ j 값이 공백이 아닐 때는 stack에 j 값을 넣고 공백이면 stack 리스트가 빌 때까지 리스트의 내용을 출력시키도록 구현
◇ string += " " 코드로 입력받은 문자의 마지막에 공백을 추가하여, 마지막에 들어가는 단어도 stack 리스트에서 꺼낼 수 있도록 구현
◇ print() 문의 끝 값(end)을 ''로 선언하여 같은 단어가 한 글자씩 띄어서 출력되거나 줄 바꿈 되어 출력되는 걸 방지
◇ 단어가 전부 나오면 print() 문의 끝 값(end)을 띄어쓰기로 설정하여 단어와 단어를 구분해줌
List 내부에서 제공하는 기능을 이용한 풀이
N=int(input())
for i in range(N):
string=list(input().split())
for j in string:
print(j[::-1], end=' ')
◇ string=list(input().split())을 이용해 입력받은 문자열을 띄어쓰기 기준(즉 단어 단위로) 잘라 리스트의 요소로 만듦
◇ for문을 통해 리스트를 순회하여, 리스트 요소를 [::-1] 이란 명령어를 통해 뒤집음
◇ print()문의 끝 값(end)을 띄어쓰기로 선언해 단어를 구분해줌
'알고리즘' 카테고리의 다른 글
[백준] 19638 센티와 마법의 뽕망치 파이썬 풀이 (0) | 2021.06.22 |
---|---|
[프로그래머스] 2개 이하로 다른 비트 파이썬 풀이 (0) | 2021.06.03 |
[백준] 1655 가운데를 말해요 파이썬 풀이 (7) | 2021.05.27 |
[백준] 15828 Router 자바 풀이 (0) | 2021.03.18 |
[프로그래머스] 튜플 (Level 2) 파이썬 풀이 (0) | 2020.11.24 |