๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š Algorithm

(60)
Baekjoon ๋ฐฑ์ค€ 1260 DFS์™€ BFS ๋ฌธ์ œํ’€์ด ๐Ÿ“ 1260 ๋ฌธ์ œ ๊ทธ๋ž˜ํ”„๋ฅผ DFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ์™€ BFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ •์  ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒํ•œ๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ„์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฐ„์„ ์€ ์–‘๋ฐฉํ–ฅ์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— DFS๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ, ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” BFS๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. V๋ถ€ํ„ฐ ๋ฐฉ๋ฌธ๋œ ์ ์„ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅ..
Baekjoon ๋ฐฑ์ค€ 1181 ๋‹จ์–ด ์ •๋ ฌ ๋ฌธ์ œํ’€์ด 1181 ๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋‹จ, ์ค‘๋ณต๋œ ๋‹จ์–ด๋Š” ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๊ณ  ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 20,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜์—ฌ ๋‹จ์–ด๋“ค์„ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด N = int(input()) word_list = [] for i in range(N) : word_list.append(input()) set_word_list = set(word_list) word_list = list(set_..
Baekjoon ๋ฐฑ์ค€ 1159 ๋†๊ตฌ ๊ฒฝ๊ธฐ ๋ฌธ์ œํ’€์ด 1159 ๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ๋†๊ตฌ์˜ ์„ธ๊ณ„์—์„œ ์ ์ฐจ ์˜ํ–ฅ๋ ฅ์„ ๋„“ํ˜€๊ฐ€๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ์— ๊ทธ๋Š” ๋†๊ตฌ ๊ฒฝ๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ์ด์—ˆ๋‹ค. ๋†๊ตฌ์— ๋Œ€ํ•œ ์—ด์ •์€ ๊ทธ๋ฅผ ๋ง‰์„ ์ˆ˜ ์—†์—ˆ๊ณ , ๊ฒฐ๊ตญ ์ƒ๊ทผ์ด๋Š” ๋†๊ตฌ์žฅ์„ ์ฒญ์†Œํ•˜๋Š” ์ผ์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ƒ๊ทผ์ด๋„ ๋†๊ตฌ์žฅ์„ ์ฒญ์†Œํ•˜๋ฉด์„œ ๊ฐ๋…์ด ๋˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ ธ์•ผํ•  ๋Šฅ๋ ฅ์„ ๊ณต๋ถ€ํ•ด๋‚˜๊ฐ”๋‹ค. ์„œ๋‹น๊ฐœ 3๋…„์ด๋ฉด ํ’์›”์„ ์Š๋“ฏ์ด ์ƒ๊ทผ์ด๋Š” ์ ์  ๊ฐ๋…์œผ๋กœ ํ•œ ๊ฑธ์Œ ๋‹ค๊ฐ€๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค. ์–ด๋Š ๋‚  ๊ทธ์—๊ฒŒ ์ง€๋ฐฉ์˜ ํ•œ ํ”„๋กœ๋†๊ตฌํŒ€์„ ๊ฐ๋…ํ•  ๊ธฐํšŒ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Š” ์—„์ฒญ๋‚œ ์ง€๋„๋ ฅ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ํ”„๋กœ ๋ฆฌ๊ทธ์—์„œ ์šฐ์Šน์„ ํ–ˆ๊ณ , ์ด์ œ ๊ตญ๊ฐ€๋Œ€ํ‘œํŒ€์˜ ๊ฐ๋…์ด ๋˜์—ˆ๋‹ค. ๋‚ด์ผ์€ ์ผ๋ณธ๊ณผ ๊ตญ๊ฐ€๋Œ€ํ‘œ ์นœ์„  ๊ฒฝ๊ธฐ๊ฐ€ ์žˆ๋Š” ๋‚ ์ด๋‹ค. ์ƒ๊ทผ์ด๋Š” ๋‚ด์ผ ๊ฒฝ๊ธฐ์— ๋‚˜์„ค ์„ ๋ฐœ ๋ช…๋‹จ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๊ตญ๊ฐ€๋Œ€ํ‘œํŒ€์˜ ๊ฐ๋…์ด ๋œ ์ดํ›„์— ์ƒ๊ทผ์ด๋Š” ๋งค์šฐ ๊ฒŒ์„๋Ÿฌ์กŒ๋‹ค. ๊ทธ๋Š” ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ๊ธฐ..
Baekjoon ๋ฐฑ์ค€ 1157 ๋‹จ์–ด ๊ณต๋ถ€ ๋ฌธ์ œํ’€์ด 1157 ๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์„ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ?๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด word = input().lower() word_list = list(set(word)) cnt = [] for i in word_list : count = word.count(i) cnt.append(count) if cnt.count(max(cnt)) >= ..
Baekjoon ๋ฐฑ์ค€ 1152 ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ ๋ฌธ์ œํ’€์ด 1152 ๋ฌธ์ œ ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์—๋Š” ๋ช‡ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์žˆ์„๊นŒ? ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ํ•œ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ฑ์žฅํ•˜๋ฉด ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜๋งŒํผ ๋ชจ๋‘ ์„ธ์–ด์•ผ ํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ ์ค„์— ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•œ ๊ฐœ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๊ณต๋ฐฑ์ด ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ๋˜ํ•œ ๋ฌธ์ž์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚  ์ˆ˜ ์žˆ๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด word = input().split() print(len(word))
Baekjoon ๋ฐฑ์ค€ 1100 ํ•˜์–€ ์นธ ๋ฌธ์ œํ’€์ด 1100 ๋ฌธ์ œ ์ฒด์ŠคํŒ์€ 8×8ํฌ๊ธฐ์ด๊ณ , ๊ฒ€์ • ์นธ๊ณผ ํ•˜์–€ ์นธ์ด ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ์ƒ‰์น ๋˜์–ด ์žˆ๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„์นธ (0,0)์€ ํ•˜์–€์ƒ‰์ด๋‹ค. ์ฒด์ŠคํŒ์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•˜์–€ ์นธ ์œ„์— ๋ง์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ 8๊ฐœ์˜ ์ค„์— ์ฒด์ŠคํŒ์˜ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ‘.’์€ ๋นˆ ์นธ์ด๊ณ , ‘F’๋Š” ์œ„์— ๋ง์ด ์žˆ๋Š” ์นธ์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ๋ฌธ์ œ์˜ ์ •๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด chess = [input() for _ in range(8)] cnt = 0 for y in range(8): for x in range(8): if y%2 == x%2 and chess[y][x] == 'F': cnt += 1 print(cnt)

728x90