{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-2458-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"4553e098-0a1a-5014-a789-664a7899185d","excerpt":"n개의 정점이 있으며 m개의 방향이 있는 간선이 있다. 이 때 모든 정점들과 연결된 정점의 수를 출력하는 문제. 첫번째 풀이는 결과를 저장하는 리스트와 간선을 저장하는 리스트를 이용하여 플로이드 와샬 방법을 이용하여 간선 i,k 와 k,j의 값이 True일 때 결과를 저장하는 리스트를 쌍방향으로 True로 값을 바꿔준 후 리스트의 모든 값이 True인 리스트를 count…","html":"<p>n개의 정점이 있으며 m개의 방향이 있는 간선이 있다. 이 때 모든 정점들과 연결된 정점의 수를 출력하는 문제. 첫번째 풀이는 결과를 저장하는 리스트와 간선을 저장하는 리스트를 이용하여 플로이드 와샬 방법을 이용하여 간선 i,k 와 k,j의 값이 True일 때 결과를 저장하는 리스트를 쌍방향으로 True로 값을 바꿔준 후 리스트의 모든 값이 True인 리스트를 count하여 풀었으나 시간초과 결과와 틀렸습니다 결과를 받게 되었다. 두번째 풀이는 리스트 한개를 이용했으며 플로이드 와샬 방법을 이용하여 ik, kj를 비교 후 ij의 값만 True로 수정해 주었다. 그 후 True인 간선은 i와 j의 값을 추가하여 값을 n과 비교하여 count하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># import sys</span>\n<span class=\"token comment\"># input = sys.stdin.readline</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># n, m = map(int, input().split())</span>\n<span class=\"token comment\"># compare = [[False for _ in range(n+1)] for _ in range(n+1)]</span>\n<span class=\"token comment\"># d = [[False for _ in range(n+1)] for _ in range(n+1)]</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># for _ in range(m):</span>\n<span class=\"token comment\">#     s, e = map(int, input().split())</span>\n<span class=\"token comment\">#     compare[s][e] = True</span>\n<span class=\"token comment\">#     compare[e][s] = True</span>\n<span class=\"token comment\">#     d[s][e] = True</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># for k in range(1, n+1):</span>\n<span class=\"token comment\">#     compare[k][k] = True</span>\n<span class=\"token comment\">#     for i in range(1, n+1):</span>\n<span class=\"token comment\">#         for j in range(1, n+1):</span>\n<span class=\"token comment\">#             if d[i][k] and d[k][j]:</span>\n<span class=\"token comment\">#                 compare[i][j] = True</span>\n<span class=\"token comment\">#                 compare[j][i] = True</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># ans = 0</span>\n<span class=\"token comment\"># for i in range(1, n+1):</span>\n<span class=\"token comment\">#     if compare[i][1:n+1].count(False) == 0:</span>\n<span class=\"token comment\">#         ans += 1</span>\n<span class=\"token comment\"># print(ans)</span>\n\n<span class=\"token keyword\">import</span> sys\n<span class=\"token builtin\">input</span> <span class=\"token operator\">=</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline\n\nn<span class=\"token punctuation\">,</span> m <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\ncompare <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token boolean\">False</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>m<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    s<span class=\"token punctuation\">,</span> e <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    compare<span class=\"token punctuation\">[</span>s<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>e<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token boolean\">True</span>\n\n<span class=\"token keyword\">for</span> k <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> compare<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span> <span class=\"token keyword\">and</span> compare<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n                compare<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token boolean\">True</span>\n\nans <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span> <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> compare<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n            ans<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n            ans<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">+=</span> <span class=\"token number\">1</span>\n\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>ans<span class=\"token punctuation\">.</span>count<span class=\"token punctuation\">(</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-2458 - Python","date":"November 27, 2020"}}},"pageContext":{"slug":"/Algorithm/BOJ-2458-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-4948-Python/"},"frontmatter":{"title":"BOJ-4948 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-11404-Python/"},"frontmatter":{"title":"BOJ-11404 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}