본문 바로가기
코테/백준

[백준] 1193 분수찾기 스위프트

by 리드맥 2021. 12. 29.

코드:

let input = Int(readLine()!)!

var ja = 1
var mo = 1
var pl = 1
if input > 1{
    for i in 2...input {
        mo = mo + pl
        ja = ja - pl
        if 1 > ja {
            ja = 1
            pl *= -1
            continue
        }
        if 1 > mo {
            mo = 1
            pl *= -1
            continue
        }

    }
}
print("\(ja)/\(mo)")


설명:
pl을 mo, ja 각각의 변수에 + - 로 1씩 더해줬습니다. mo, ja 둘중 하나가 1보다 작아지면 양사이드에 도착한거기 때문에 pl 에 -1 을 곱해줘서 mo가 커지면 , ja가 작아지게, ja가 커지면, mo가 작아지게 했습니다.

생각해보면 쉬운데 생각을 잘 못하는것 같습니다. 이문제가 브론즈 1인데 나중에 골드, 플레티넘 이런문제는 어떻게 풀어야 될지 벌써부터 막막하네요.. 


결과:

댓글