dev/algorithm
BOJ / 1789๋ฒ / ์๋ค์ ํฉ [Go][Python3]
crscnt
2021. 2. 26. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
1789๋ฒ: ์๋ค์ ํฉ
์ฒซ์งธ ์ค์ ์์ฐ์ S(1 ≤ S ≤ 4,294,967,295)๊ฐ ์ฃผ์ด์ง๋ค.
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/1789
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var s int
fmt.Fscanln(reader, &s)
var start, end int = 1, s
var mid int
var answer int
for start <= end {
mid = (start + end) / 2
if mid*(mid+1)/2 <= s {
answer = mid
start = mid + 1
} else {
end = mid - 1
}
}
fmt.Fprintln(writer, answer)
}
๐จ Python3
# https://www.acmicpc.net/problem/1789
import sys
if __name__ == "__main__":
s = int(sys.stdin.readline())
start, end = 1, s
mid, answer = 0, 0
while start <= end:
mid = (start + end) // 2
if mid*(mid + 1) // 2 <= s:
answer = mid
start = mid + 1
else:
end = mid - 1
print(answer)
728x90