728x90
https://www.acmicpc.net/problem/5637
22/09/14
그룹 채점 현황에 있는 무작위 문제를 풀었다. 어렵지 않은 실버 문제였다. 다만, 정규표현식을 사용하여 문제를 해결하지는 않았다.
문제 접근 방식:
태그랑은 조금 다르게 그냥 구현했는데, 일단 E-N-D가 나올 때까지 반복 입력받으므로 while문을 사용했다.
단어들을 모아놓는 words리스트를 먼저 선언했다.
이후 입력 받을 때마다 그 줄을 공백으로 분리하여 리스트로 만들었다.
그 리스트의 요소(즉, 단어가 될 수 있는 것들)를 꺼내고, word라는 빈 문자열을 선언했다.
그 요소(단어가 될 수 있는 것)를 반복문을 사용해 문자 하나하나를 보면서 소문자, 대문자, 하이픈이라면 word에 붙여주고, 아니면 안 붙였다.
요소를 다 돌았으면, word를 위에서 말한 words리스트에 추가해주었다.
이후 words리스트에서 길이를 기준으로 최대가 되는 원소를 소문자로 출력해주었다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.
더보기
# 5637번 가장 긴 단어
# 문자열
import sys
input = sys.stdin.readline
words = []
while True:
S = input().rstrip().split(' ')
if S[-1] == 'E-N-D':
break
for maybe_word in S:
word = ''
for char in maybe_word:
if ('a' <= char <= 'z' or 'A' <= char <= 'Z' or '-' == char):
word += char
words.append(word)
print(max(words, key = lambda x: len(x)).lower())
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 2057번 팩토리얼 분해 (0) | 2022.09.29 |
---|---|
[Python] 4948번 베르트랑 공준 (0) | 2022.09.29 |
[Python] 16113번 시그널 (0) | 2022.09.28 |
[Python] 15904번 UCPC는 무엇의 약자일까? (0) | 2022.09.28 |
[Python] 17413번 단어 뒤집기 2 (0) | 2022.09.28 |