dev/algorithm
BOJ / 2847๋ฒ / ๊ฒ์์ ๋ง๋ ๋์ค์ด [Go][Python3]
crscnt
2021. 3. 12. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
2847๋ฒ: ๊ฒ์์ ๋ง๋ ๋์ค์ด
ํ๊ต์์ ๊ทธ๋ํฝ์ค ์์ ์ ๋ค์ ๋์ค์ด๋ ์์ ์๊ฐ์ ๋ค์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ค๋งํธํฐ ๊ฒ์์ ๋ง๋ค์๋ค. ๊ฒ์์๋ ์ด N๊ฐ์ ๋ ๋ฒจ์ด ์๊ณ , ๊ฐ ๋ ๋ฒจ์ ํด๋ฆฌ์ดํ ๋ ๋ง๋ค ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ํ๋ ์ด์ด
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/2847
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n int
fmt.Fscanln(reader, &n)
var scores = make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscanln(reader, &scores[i])
}
var result int
for i := n - 2; i >= 0; i-- {
if scores[i+1] <= scores[i] {
diff := scores[i] - scores[i+1] + 1
result += diff
scores[i] -= diff
}
}
fmt.Fprintln(writer, result)
}
๐จ Python3
# https://www.acmicpc.net/problem/2847
import sys
if __name__ == "__main__":
n = int(sys.stdin.readline())
scores = [int(sys.stdin.readline()) for _ in range(n)]
result = 0
for i in range(n-2, -1, -1):
if scores[i+1] <= scores[i]:
diff = scores[i] - scores[i+1] + 1
result += diff
scores[i] -= diff
print(result)
728x90