dev/algorithm
BOJ / 2422๋ฒ / ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ [Go][Python3]
crscnt
2021. 1. 26. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
2422๋ฒ: ํ์ค์ ์ด ์ดํ๋ฆฌ์์ ๊ฐ์ ์์ด์คํฌ๋ฆผ์ ์ฌ๋จน๋๋ฐ
์ฒซ์งธ ์ค์ ์ ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. N์ ์์ด์คํฌ๋ฆผ ์ข ๋ฅ์ ์์ด๊ณ , M์ ์์ด๋จน์ผ๋ฉด ์ ๋๋ ์กฐํฉ์ ๊ฐ์์ด๋ค. ์๋ M๊ฐ์ ์ค์๋ ์์ด๋จน์ผ๋ฉด ์ ๋๋ ์กฐํฉ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ์ ์กฐํฉ์ ๋ ๋ฒ
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
// https://www.acmicpc.net/problem/2422
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n, m int
fmt.Fscanln(reader, &n, &m)
var badCombination = make([][]bool, n)
for i := 0; i < n; i++ {
badCombination[i] = make([]bool, n)
}
for i := 0; i < m; i++ {
var iceOne, iceTwo int
fmt.Fscanln(reader, &iceOne, &iceTwo)
badCombination[iceOne-1][iceTwo-1] = true
badCombination[iceTwo-1][iceOne-1] = true
}
fmt.Fprintln(writer, getCountOfGoodCombination(badCombination))
}
func getCountOfGoodCombination(badCombination [][]bool) (count int) {
for i := 0; i < len(badCombination)-2; i++ {
for j := i + 1; j < len(badCombination)-1; j++ {
if badCombination[i][j] {
continue
}
for k := j + 1; k < len(badCombination); k++ {
if badCombination[i][k] || badCombination[j][k] {
continue
}
count++
}
}
}
return
}
๐จ Python3
# https://www.acmicpc.net/problem/2422
import sys
def get_count_of_good_combination(bad_combination):
count = 0
for i in range(len(bad_combination)-2):
for j in range(i+1, len(bad_combination)-1):
if bad_combination[i][j]:
continue
for k in range(j+1, len(bad_combination)):
if bad_combination[i][k] or bad_combination[j][k]:
continue
count += 1
return count
if __name__ == "__main__":
n, m = list(map(int, sys.stdin.readline().split()))
bad_combination = [[False for j in range(n)] for i in range(n)]
for i in range(m):
ice_one, ice_two = list(map(int, sys.stdin.readline().split()))
bad_combination[ice_one-1][ice_two-1] = True
bad_combination[ice_two-1][ice_one-1] = True
print(get_count_of_good_combination(bad_combination))
728x90