최코딩의 개발

[백준 17413번] 단어 뒤집기 2 본문

코딩테스트/백준

[백준 17413번] 단어 뒤집기 2

seung_ho_choi.s 2025. 2. 8. 00:43
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