백준 12605번 문제 - 단어순서 뒤집기
스택관련 문제
이 문제를 통해서 배우는 알고리즘은 아래와 같다.
자료구조, 문자열, 파싱, 스택
문제 풀이 과정
# 입력 받기
N = int(input()) # 전체 케이스의 개수
# 각 케이스 처리
for i in range(1, N + 1):
line = input() # 각 케이스의 단어들
words = line.split() # 단어를 리스트로 분리
reversed_words = ' '.join(reversed(words)) # 단어 순서 뒤집기
print(f"Case #{i}: {reversed_words}") # 결과 출력
코드 설명:
입력 받기: 첫 번째 줄에서 Input() 함수를 사용하여 입력받은 문자열을 INT로 형변환 후
전체 케이스의 개수 N에 할당합니다.
각 케이스 처리:
for 루프를 사용하여 1부터 N까지 반복합니다. ( i는 1부터 시작해서 N까지 반복)
각 케이스의 문자열을 입력받고, split() 메서드를 사용하여 단어를 리스트로 분리합니다.
reversed() 함수를 사용하여 단어의 순서를 뒤집고, join() 메서드를 사용하여 다시 문자열로 결합합니다.
print() 함수를 사용하여 요구된 형식으로 결과를 출력합니다.
새롭게 배운 내용
1. reversed() 함수
: reversed() 함수는 파이썬에서 주어진 시퀀스(리스트, 튜플, 문자열 등)의 요소를 역순으로 반환하는 함수입니다.
이 함수는 원본 시퀀스를 변경하지 않고, 역순으로 된 새로운 이터레이터를 반환합니다.
사용예시
reversed(sequence)
#여기서 sequence는 리스트, 튜플, 문자열 등과 같은 시퀀스 자료형입니다.
# 1. 리스트의 역순
my_list = [1, 2, 3, 4, 5]
reversed_list = list(reversed(my_list))
print(reversed_list) # 출력: [5, 4, 3, 2, 1]
#2. 문자열의 역순
my_string = "Hello"
reversed_string = ''.join(reversed(my_string))
print(reversed_string) # 출력: "olleH"
#3. 튜플의 역순
my_tuple = (1, 2, 3, 4, 5)
reversed_tuple = tuple(reversed(my_tuple))
print(reversed_tuple) # 출력: (5, 4, 3, 2, 1)
주의사항
: reversed() 함수는 이터레이터를 반환하므로, 리스트나 튜플과 같은 시퀀스 자료형으로 변환하려면 list() 또는 tuple() 함수를 사용해야 합니다.
원본 시퀀스는 변경되지 않으며, 새로운 이터레이터가 생성됩니다.
99클럽 코테 스터디 15일차 TIL + 오늘의 학습 키워드 : 스택/큐 (2) | 2024.11.11 |
---|---|
99클럽 코테 스터디 14일차 TIL + 오늘의 학습 키워드 : 큐 (0) | 2024.11.10 |
99클럽 코테 스터디 12일차 TIL + 오늘의 학습 키워드 : 스택 (1) | 2024.11.08 |
99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 : 스택 (1) | 2024.11.08 |
99클럽 코테 스터디 10일차 TIL + 오늘의 학습 키워드 : 해시 (4) | 2024.11.06 |