Description
Code
package main
import (
"strings"
"strconv"
"bufio"
"os"
)
var (
sc = bufio.NewScanner(os.Stdin)
wr = bufio.NewWriter(os.Stdout)
)
func main() {
defer wr.Flush()
var A, B, V int
if sc.Scan() {
temp := strings.Fields(sc.Text())
A, _ = strconv.Atoi(temp[0])
B, _ = strconv.Atoi(temp[1])
V, _ = strconv.Atoi(temp[2])
}
// 높이가 V 미터
// 낮에는 A미터 올라감
// 자는 동안 B미터 미끄러짐
if (V - B) % (A - B) == 0 {
wr.WriteString(strconv.Itoa((V - B) / (A - B)))
} else {
wr.WriteString(strconv.Itoa((V - B) / (A - B) + 1))
}
}
- 입력 처리
- 달팽이가 낮에 올라가는 거리 A, 밤에 미끄러지는 거리 B, 목표 높이 V를 입력받습니다.
- 입력받은 값을 정수로 변환하여 계산에 활용합니다.
- 핵심 로직
- 목표 높이 V에 도달하기 전, 마지막 날 밤에는 미끄러지지 않습니다. 따라서 V - B를 기준으로 계산을 시작합니다.
- 매일 순수하게 올라가는 거리는 A - B이므로, (V - B) / (A - B)로 며칠이 필요한지 계산합니다.
- 나누어떨어지지 않는 경우, 하루가 더 필요하므로 +1을 추가합니다.
- 조건 처리
- (V - B) % (A - B) == 0일 경우, 추가적인 하루가 필요하지 않습니다.
- 그렇지 않다면, (V - B) / (A - B) + 1로 계산하여 출력합니다.
'leetcode , 백준' 카테고리의 다른 글
[Go] 2346 풍선 터뜨리기 (0) | 2025.01.08 |
---|---|
[Go] 28279 덱 2 (0) | 2025.01.07 |
[Go] 11866 요세푸스 문제 0 (0) | 2025.01.03 |
[Go] 18258 큐 2 (0) | 2025.01.03 |
[Go] 4949 균형잡힌 세상 (0) | 2025.01.03 |