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

๐Ÿ“š Algorithm

(60)
[๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ - 9oormthon Challenge] Day 7 ๊ตฌ๋ฆ„ ์ฐพ๊ธฐ ๊นƒ๋ฐœ - Python ํŒŒ์ด์ฌ ํ’€์ด ๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ 7์ผ์ฐจ - ๊ตฌ๋ฆ„ ์ฐพ๊ธฐ ๊นƒ๋ฐœ ๐Ÿ“œ ๋ฌธ์ œ โœ๏ธ ์ž…๋ ฅ โœ๏ธ ์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด ํ–‰๋ ฌ ๊ฐ’์ด 0์ผ๋•Œ ์ธ์ ‘ํ•œ 8์นธ ์ค‘์—์„œ ๊ตฌ๋ฆ„์ด K๊ฐœ ์žˆ๋Š” ์นธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ชจ๋“  ์นธ์„ ํ™•์ธํ•˜๋ฉด์„œ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ์— ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋„๋ก ํ•˜์˜€๋‹ค. n, k = map(int, input().split()) mat = [input().split() for i in range(n)] dy, dx = [-1, -1, -1, 0, 0, 1, 1, 1], [-1, 0, 1, -1, 1, -1, 0, 1] for i in range(n): for j in range(n): if mat[i][j] == '0': flag = 0 for a in range(8): y, x = i + dy[a], j + dx[a] if y ..
Programmers ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - [๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ] Python ํŒŒ์ด์ฌ ํ’€์ด https://school.programmers.co.kr/learn/courses/30/lessons/178871 ๐Ÿ“ ๋ฌธ์ œ ๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ โœ๏ธ ์ž…์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด ์ฒ˜์Œ์—๋Š” res ๋ฆฌ์ŠคํŠธ ์„ ์–ธ๊ณผ callings์˜ ๋ฐ˜๋ณต๋ฌธ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ ๊ฐ€ ๋‚˜์™”๋‹ค. ์ฝ”๋“œ๋ฅผ ์•„๋ฌด๋ฆฌ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์งœ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ ๊ฐ€ ๋‚˜์˜ค๊ธธ๋ž˜ ๋‹ค๋ฅธ ์ •๋‹ต์ž ๋ถ„๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด๋‹ˆ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์€ res๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ ‘๊ทผ์„ ํ–ˆ๋‹ค. res๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒƒ ์™ธ์—๋Š” ์ƒ๊ฐํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋งž์•˜๋‹ค. python์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” swap์„ ํ•˜์˜€๋‹ค. def solution(players, callings): res = {player: i for i, player in enumerate(players)} for i in callings: idx = res[i] r..
[๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ - 9oormthon Challenge] Day 6 ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ - Python ํŒŒ์ด์ฌ ํ’€์ด ๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ 6์ผ์ฐจ - ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ ๐Ÿ“œ ๋ฌธ์ œ โœ๏ธ ์ž…๋ ฅ โœ๏ธ ์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด ์ง€๋‚œ์ฃผ ๋ฌธ์ œ๋“ค์— ๋น„ํ•ด ์กฐ๊ธˆ ๋‚œ์ด๋„๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฌธ์ œ ๊ณต๊ฐœ ๋‹น์ผ๊นŒ์ง€ ํ’€์ง€๋Š” ๋ชปํ•˜๊ณ  ๋‹ค์Œ๋‚  ์˜ค์ „์— ํ’€๊ฒŒ๋˜์—ˆ๋‹ค. ๋ฌธ์ž์—ด์„ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ทธ ์กฐํ•ฉ๋“ค์—์„œ ์ตœ๋Œ€๋ฅผ ์ฐพ์•„์•ผํ•œ๋‹ค. ๋‚˜๋Š” ๋ฌธ์ž์—ด์„ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํ•จ์ˆ˜ search๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ธ์ž๊ฐ’์œผ๋กœ ๋“ค์–ด์˜ค๋Š” start๋Š” ๋ฌธ์ž์—ด ์กฐํ•ฉ์˜ ์‹œ์ž‘์„ ๋œปํ•˜๊ณ  cnt๋Š” ๋‚จ์€ ๋ฌธ์ž์—ด์„ ๋ช‡ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ๊ฒƒ์ธ์ง€๋ฅผ ๋„˜๊ฒจ์ฃผ๋„๋ก ํ–ˆ๋‹ค. global ๋ณ€์ˆ˜ set์„ ์‚ฌ์šฉํ•ด์„œ ์ €์žฅํ•˜๊ณ  ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ–ˆ๋‹ค. cal ํ•จ์ˆ˜์—์„œ๋Š” ๋ฌธ์ž์—ด ์กฐํ•ฉ๋“ค์—์„œ ์ตœ๋Œ€๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋„๋ก ํ–ˆ๋‹ค. start์™€ cnt๋Š” search ํ•จ์ˆ˜์™€ ๋˜‘๊ฐ™๊ณ , P๋Š” ๋ฌธ์ž์—ด์„ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด์ด๋‹ค. ์ดํ›„ main ์—์„œ๋Š” ๋ฌธ์ž..
[Baekjoon] ๋ฐฑ์ค€ 9461 'ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 9461 ๋ฌธ์ œ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‚ผ๊ฐํ˜•์ด ๋‚˜์„  ๋ชจ์–‘์œผ๋กœ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์ฒซ ์‚ผ๊ฐํ˜•์€ ์ •์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ •์‚ผ๊ฐํ˜•์„ ๊ณ„์† ์ถ”๊ฐ€ํ•œ๋‹ค. ๋‚˜์„ ์—์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋ฅผ k๋ผ ํ–ˆ์„ ๋•Œ, ๊ทธ ๋ณ€์— ๊ธธ์ด๊ฐ€ k์ธ ์ •์‚ผ๊ฐํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด P(N)์€ ๋‚˜์„ ์— ์žˆ๋Š” ์ •์‚ผ๊ฐํ˜•์˜ ๋ณ€์˜ ๊ธธ์ด์ด๋‹ค. P(1)๋ถ€ํ„ฐ P(10)๊นŒ์ง€ ์ฒซ 10๊ฐœ ์ˆซ์ž๋Š” 1, 1, 1, 2, 2, 3, 4, 5, 7, 9์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, P(N)์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 100) ์ถœ๋ ฅ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค P(N)์„ ์ถœ๋ ฅํ•œ๋‹ค. ๐Ÿง ํ’€์ด T = int(in..
[Baekjoon] ๋ฐฑ์ค€ 13164 'ํ–‰๋ณต์œ ์น˜์›' ๋ฌธ์ œํ’€์ด ํŒŒ์ด์ฌ, Python, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 13164 ๋ฌธ์ œ ํ–‰๋ณต ์œ ์น˜์› ์›์žฅ์ธ ํƒœ์–‘์ด๋Š” ์–ด๋Š ๋‚  N๋ช…์˜ ์›์ƒ๋“ค์„ ํ‚ค ์ˆœ์„œ๋Œ€๋กœ ์ผ๋ ฌ๋กœ ์ค„ ์„ธ์šฐ๊ณ , ์ด K๊ฐœ์˜ ์กฐ๋กœ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ ์กฐ์—๋Š” ์›์ƒ์ด ์ ์–ด๋„ ํ•œ ๋ช… ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๊ฐ™์€ ์กฐ์— ์†ํ•œ ์›์ƒ๋“ค์€ ์„œ๋กœ ์ธ์ ‘ํ•ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์กฐ๋ณ„๋กœ ์ธ์›์ˆ˜๊ฐ€ ๊ฐ™์„ ํ•„์š”๋Š” ์—†๋‹ค. ์ด๋ ‡๊ฒŒ ๋‚˜๋‰˜์–ด์ง„ ์กฐ๋“ค์€ ๊ฐ์ž ๋‹จ์ฒด ํ‹ฐ์…”์ธ ๋ฅผ ๋งž์ถ”๋ ค๊ณ  ํ•œ๋‹ค. ์กฐ๋งˆ๋‹ค ํ‹ฐ์…”์ธ ๋ฅผ ๋งž์ถ”๋Š” ๋น„์šฉ์€ ์กฐ์—์„œ ๊ฐ€์žฅ ํ‚ค๊ฐ€ ํฐ ์›์ƒ๊ณผ ๊ฐ€์žฅ ํ‚ค๊ฐ€ ์ž‘์€ ์›์ƒ์˜ ํ‚ค ์ฐจ์ด๋งŒํผ ๋“ ๋‹ค. ์ตœ๋Œ€ํ•œ ๋น„์šฉ์„ ์•„๋ผ๊ณ  ์‹ถ์–ด ํ•˜๋Š” ํƒœ์–‘์ด๋Š” K๊ฐœ์˜ ์กฐ์— ๋Œ€ํ•ด ํ‹ฐ์…”์ธ  ๋งŒ๋“œ๋Š” ๋น„์šฉ์˜ ํ•ฉ์„ ์ตœ์†Œ๋กœ ํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค. ํƒœ์–‘์ด๋ฅผ ๋„์™€ ์ตœ์†Œ์˜ ๋น„์šฉ์„ ๊ตฌํ•˜์ž. ์ž…๋ ฅ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ์œ ์น˜์›์— ์žˆ๋Š” ์›์ƒ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 300,000)๊ณผ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•˜๋Š” ์กฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€..
[๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ - 9oormthon Challenge] Day 5 ์ด์ง„์ˆ˜ ์ •๋ ฌ ๊ตฌ๋ฆ„ํ†ค ์ฑŒ๋ฆฐ์ง€ 5์ผ์ฐจ - ์ด์ง„์ˆ˜ ์ •๋ ฌ ๐Ÿ“œ ๋ฌธ์ œ โœ๏ธ ์ž…๋ ฅ โœ๏ธ ์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด 10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ bin()์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ 2์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด int()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋จผ์ €, numlist์•ˆ์— ์žˆ๋Š” 10์ง„์ˆ˜๋“ค์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์—ฌ๊ธฐ์„œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ธฐ ์œ„ํ•ด bin()๊ณผ count๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 1์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ๋„ ๋”ฐ์ ธ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, bin_num์—๋Š” 1์˜ ๊ฐœ์ˆ˜์™€ 10์ง„์ˆ˜๋ฅผ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•˜๋ฉด์„œ K๋ฒˆ์งธ 10์ง„์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด index K-1์˜ 1์—์„œ ์ถœ๋ ฅ์„ํ–ˆ๋‹ค. #10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝ -> bin() ์‚ฌ์šฉ #1์˜ ๊ฐœ์ˆ˜ : count() N, K = map(int, input().split()) numlist = list(map(int, inp..

728x90