최코딩의 개발

[백준 20125번] 쿠키의 신체 측정 본문

코딩테스트/백준

[백준 20125번] 쿠키의 신체 측정

seung_ho_choi.s 2025. 1. 29. 01:27
728x90

https://www.acmicpc.net/problem/20125

 

N = gets.chomp.to_i

answer = Array.new(5, 0)
heart = 0
answerHeart = Array.new(2, 0)
heartFlag = false
headFlag = false
coreFlag = false

core = 0

for i in 0...N
  input = gets.chomp.to_s

  # 허리 구하기 및 다리 구하기
  if coreFlag
    # 허리 구하기
    if input.index('*') == answerHeart[1] - 1
      core += 1
    else # 다리 구하기
      answer[2] = core # 허리 입력
      # 다리 2개 다 있을때
      if input.count('*') == 2
        answer[4] += 1
        answer[3] += 1
        # 다리 1 개 있을떄
      elsif input.count('*') == 1
        if input.index('*') > heart
          answer[4] += 1
        elsif input.index('*') < heart
          answer[3] += 1
        end
        # 다리 없을때 종료
      elsif input.index('*') == nil
        coreFlag = false
        break

      end
    end
  end

  # 왼팔 오른팔 구하기
  if heartFlag
    leftArm = input.index('*')
    rightArm = input.rindex('*')
    answer[0] = heart - leftArm
    answer[1] = rightArm - heart
    heartFlag = false
    coreFlag = true
  end

  # 머리 구하기 따라서 바로 아래 심장 구할 수 있음
  if input.index('*') != nil && !headFlag
    heart = input.index('*')
    answerHeart[0] = i + 2
    answerHeart[1] = heart + 1
    heartFlag = true
    headFlag = true
  end

end

puts answerHeart.join(" ")
puts answer.join(" ")

 

자바였으면 이미 풀었겠지만, 루비는 문법을 잘 몰라서 조금 애를 먹었다. 그래도 문제 자체는 어렵지 않았다. 핵심은 심장 부분을 찾아 활용하고, 순서대로 구현하면 되는 간단한 문제였다. 덕분에 루비 문법을 많이 익힐 수 있었고, 루비가 꽤 매력적이라는 것도 느꼈다! 완전 최고다! 😊

728x90

'코딩테스트 > 백준' 카테고리의 다른 글

[백준 20437번] 문자열 게임 2  (0) 2025.02.03
[백준 1406번] 에디터  (0) 2025.01.30
[백준 1283번] 단축키 지정  (0) 2025.01.27
[백준 1205번] 등수 구하기  (0) 2025.01.24
[백준 17266번] 어두운 굴다리  (0) 2025.01.24