최코딩의 개발
[백준 17413번] 단어 뒤집기 2 본문
728x90
https://www.acmicpc.net/problem/17413
S=gets.chomp.to_s
message=""
space_message=""
word=""
flag=false
space =false
S.each_char.with_index do |char, i|
# 띄어쓰기 만났을떄 저장
if char ==" " && !space
message += word.reverse
message+=" "
word=""
# 마지막 문자
elsif S.length-1 == i && char != ">"
word+=char
message +=word.reverse
word =""
# >tag< 이렇게 사이에있을떄
elsif S[i+1] == "<" && char !=">"
word+=char
message+=word.reverse
word=""
# < 이거 만났을떄
elsif char == "<" || space
space= true
if char != "<" && char != ">"
word+=char
elsif char == ">"
message += "<" + word + ">"
space =false
word = ""
end
else
word+=char
end
end
puts message
문제를 잘못 읽어서 <> 안의 내용까지 뒤집어야 하는 줄 알았고, <> 안에 또 다른 <>가 있는 줄 착각해서 어렵게 풀었다... 다음부터는 문제를 꼼꼼히 읽고 풀어야겠다.
핵심은 <gd> 안에 단어가 있을 때, tag<>처럼 괄호 앞에 띄어쓰기가 없는 경우, 그리고 abc ddd처럼 단어 사이에 띄어쓰기가 있는 경우, 이 세 가지 경우를 고려해서 풀면 되는 간단한 문제였다.
728x90
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 2503번] 숫자 야구 (0) | 2025.02.09 |
---|---|
[백준 1966번] 프린터 큐 (0) | 2025.02.08 |
[백준 10799번] 쇠막대기 (0) | 2025.02.06 |
[백준 20437번] 문자열 게임 2 (0) | 2025.02.03 |
[백준 1406번] 에디터 (0) | 2025.01.30 |