최코딩의 개발
[백준 20125번] 쿠키의 신체 측정 본문
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 |