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

 

16675번: 두 개의 손

첫 번째 줄에 차례로 ML, MR, TL, TR이 공백으로 구분되어 주어진다. 차례대로 민성이의 왼손과 오른손, 태경이의 왼손과 오른손의 상태를 나타낸다. 위 4개의 값들은 “S”, “R”, “P” 중 하나이

www.acmicpc.net


맨처음 생각이 났던 것은 하나씩 다 해보는 것... 이었지만!

뭔가 방법이 있지 않을까?? 싶어서 혹시 이기는 수를 카운팅하면 답이 나오는거 아닐까라는 생각을 하게 되었다.

그 결과 땡 ^ㅡ^

뭔가 간단하게 하는 방법이 있지 않을까 열심히 고민했지만 전혀 생각이 나지 않아서...

하나씩 비교하는 방법으로 방향을 바꾸었다.

 

다른 사람의 풀이를 보니 %를 이용하여 간단하게 구할 수도 있나보다..!!!

생각은 했지만 머리가 따라주지 않아 슬픈 하루였다... 응...

 

더보기

1. for문

for i in (range)  와 같은 방법으로 진행이 되는데

특이하게 맨 뒤에 값도 포함을 한다. 즉 0..4 하면 0~4를 다 돈다. 주의할 것.

 

2. String.index()

index를 반환해준다.

그 값이 있는 경우 integer값을, 없는 경우 nill 값을 반환해준다.

https://ruby-doc.org/core-3.0.0/String.html#method-i-index

 

Ğ̎ĭ̎t̆̎H̆̎ŭ̎b̆̎ : https://github.com/YunYunYY/BOJ_Ruby/blob/main/B16675.rb

a=gets.split.to_a
for i in 0..3
    a[i]='SRP'.index(a[i])
end
ou = ""
if a[0]==a[1]
    if a[0]==2
        if(a[2]==0||a[3]==0)
            ou="TK"
        end
    else
        if(a[2]==a[0]+1||a[3]==a[0]+1)
            ou="TK"
        end
    end
end

if(a[2]==a[3])
    if a[2]==2
        if(a[0]==0||a[1]==0)
            ou="MS"
        end
    else
        if(a[0]==a[2]+1||a[1]==a[2]+1)
            ou="MS"
        end
    end
end

if ou==""
    puts "?"
else
    puts ou
end

'BOJ > Ruby' 카테고리의 다른 글

백준 Ruby : #15734  (0) 2022.04.27
백준 Ruby : #9366  (0) 2022.04.19
백준 Ruby : #14568  (0) 2022.04.15
백준 Ruby : #18247  (0) 2022.04.06
백준 Ruby : #24072  (0) 2022.04.02

+ Recent posts