코드:
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인데 나중에 골드, 플레티넘 이런문제는 어떻게 풀어야 될지 벌써부터 막막하네요..
결과:
'코테 > 백준' 카테고리의 다른 글
[백준] 10250 ACM호텔 스위프트 (0) | 2021.12.30 |
---|---|
[백준] 2869 달팽이는올라가고싶다 스위프트 (0) | 2021.12.30 |
[백준] 2292 벌집 스위프트 (0) | 2021.12.29 |
[백준] 1712 손익분기점 스위프트 (0) | 2021.12.29 |
[백준] 1316 그룹단어체커 스위프트 (0) | 2021.12.29 |
댓글