dev/algorithm
BOJ / 2303๋ฒ / ์ซ์ ๊ฒ์ [Go][Python3]
crscnt
2021. 1. 29. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
2303๋ฒ: ์ซ์ ๊ฒ์
N๋ช ์ด ๋ชจ์ฌ ์ซ์ ๊ฒ์์ ํ๊ณ ์ ํ๋ค. ๊ฐ ์ฌ๋์๊ฒ๋ 1๋ถํฐ 10์ฌ์ด์ ์๊ฐ ์ ํ์ง ๋ค์ฏ ์ฅ์ ์นด๋๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ์ค ์ธ ์ฅ์ ์นด๋๋ฅผ ๊ณจ๋ผ ํฉ์ ๊ตฌํ ํ ์ผ์ ์๋ฆฌ ์๊ฐ ๊ฐ์ฅ ํฐ ์ฌ๋์ด ๊ฒ์์ ์ด
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/2303
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 cards = make([][]int, n)
for i := 0; i < n; i++ {
cards[i] = make([]int, 5)
for j := 0; j < 5; j++ {
fmt.Fscanf(reader, "%d ", &cards[i][j])
}
}
fmt.Fprintln(writer, getWinner(cards))
}
func getWinner(cards [][]int) int {
var maxSum, winner int
var sumOne, sumTwo, sumThree int
for i := 0; i < len(cards); i++ {
for j := 0; j < 5; j++ {
sumOne = cards[i][j]
for k := j + 1; k < 5; k++ {
sumTwo = sumOne + cards[i][k]
for l := k + 1; l < 5; l++ {
sumThree = sumTwo + cards[i][l]
}
if maxSum <= sumThree%10 {
maxSum = sumThree % 10
winner = i + 1
}
}
}
}
return winner
}
๐จ Python3
# https://www.acmicpc.net/problem/2303
import sys
def get_winnder(cards):
max_sum, winner = 0, 0
sum_one, sum_two, sum_three = 0, 0, 0
for i in range(len(cards)):
for j in range(5):
sum_one = cards[i][j]
for k in range(j+1, 5):
sum_two = sum_one + cards[i][k]
for l in range(k+1, 5):
sum_three = sum_two + cards[i][l]
if max_sum <= sum_three % 10:
max_sum = sum_three % 10
winner = i + 1
return winner
if __name__ == "__main__":
n = int(sys.stdin.readline())
cards = []
for i in range(n):
cards.append(list(map(int, sys.stdin.readline().split())))
print(get_winnder(cards))
728x90