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

๐Ÿ“š Algorithm

(60)
Progammers ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - [๋‹ค์Œ ํฐ ์ˆซ์ž] Python ํŒŒ์ด์ฌ ํ’€์ด ๐Ÿ“ ๋ฌธ์ œ ๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ โœ๏ธ ์ž…์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด 2์ง„์ˆ˜์—์„œ์˜ 1์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, bin()๊ณผ .count("1")์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด3์„ ๋™์‹œ์— ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฃผ์–ด์ง„ n์—์„œ 1์”ฉ ๋Š˜๋ ค๊ฐ€๋ฉฐ ์กฐ๊ฑด2๋ฅผ ๋งŒ์กฑํ•  ๊ฒฝ์šฐ break๋ฅผ ๊ฑธ์—ˆ๋‹ค. def solution(n): answer = 0 num = n+1 while True : bin_n = bin(n) bin_num = bin(num) if bin_n.count("1") == bin_num.count("1") : answer = num break else : num += 1 return answer
[Baekjoon] ๋ฐฑ์ค€ 1946 '์‹ ์ž… ์‚ฌ์›' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 1946 ๋ฌธ์ œ ์–ธ์ œ๋‚˜ ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•˜๋Š” ๊ตด์ง€์˜ ๋Œ€๊ธฐ์—… ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์„ ์‹ค์‹œํ•œ๋‹ค. ์ธ์žฌ ์„ ๋ฐœ ์‹œํ—˜์€ 1์ฐจ ์„œ๋ฅ˜์‹ฌ์‚ฌ์™€ 2์ฐจ ๋ฉด์ ‘์‹œํ—˜์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ๊ธฐ์—…์˜ ์ด๋…์— ๋”ฐ๋ผ ๊ทธ๋“ค์€ ์ตœ๊ณ ์˜ ์ธ์žฌ๋“ค๋งŒ์„ ์‚ฌ์›์œผ๋กœ ์„ ๋ฐœํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๋Š”, ๋‹ค๋ฅธ ๋ชจ๋“  ์ง€์›์ž์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ์ ๊ณผ ๋ฉด์ ‘์‹œํ—˜ ์„ฑ์  ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ์ง€์›์ž๋ณด๋‹ค ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ์ž๋งŒ ์„ ๋ฐœํ•œ๋‹ค๋Š” ์›์น™์„ ์„ธ์› ๋‹ค. ์ฆ‰, ์–ด๋–ค ์ง€์›์ž A์˜ ์„ฑ์ ์ด ๋‹ค๋ฅธ ์–ด๋–ค ์ง€์›์ž B์˜ ์„ฑ์ ์— ๋น„ํ•ด ์„œ๋ฅ˜ ์‹ฌ์‚ฌ ๊ฒฐ๊ณผ์™€ ๋ฉด์ ‘ ์„ฑ์ ์ด ๋ชจ๋‘ ๋–จ์–ด์ง„๋‹ค๋ฉด A๋Š” ๊ฒฐ์ฝ” ์„ ๋ฐœ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋ฉด์„œ, ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์ด๋ฒˆ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์—์„œ ์„ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์ž…์‚ฌ์›์˜ ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ..
[Baekjoon] ๋ฐฑ์ค€ 3085 '์‚ฌํƒ• ๊ฒŒ์ž„' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 3085 ๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ์–ด๋ ธ์„ ์ ์— "๋ด„๋ณด๋‹ˆ (Bomboni)" ๊ฒŒ์ž„์„ ์ฆ๊ฒจํ–ˆ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— N×Nํฌ๊ธฐ์— ์‚ฌํƒ•์„ ์ฑ„์›Œ ๋†“๋Š”๋‹ค. ์‚ฌํƒ•์˜ ์ƒ‰์€ ๋ชจ๋‘ ๊ฐ™์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์‚ฌํƒ•์˜ ์ƒ‰์ด ๋‹ค๋ฅธ ์ธ์ ‘ํ•œ ๋‘ ์นธ์„ ๊ณ ๋ฅธ๋‹ค. ๊ทธ ๋‹ค์Œ ๊ณ ๋ฅธ ์นธ์— ๋“ค์–ด์žˆ๋Š” ์‚ฌํƒ•์„ ์„œ๋กœ ๊ตํ™˜ํ•œ๋‹ค. ์ด์ œ, ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์—ฐ์† ๋ถ€๋ถ„(ํ–‰ ๋˜๋Š” ์—ด)์„ ๊ณ ๋ฅธ ๋‹ค์Œ ๊ทธ ์‚ฌํƒ•์„ ๋ชจ๋‘ ๋จน๋Š”๋‹ค. ์‚ฌํƒ•์ด ์ฑ„์›Œ์ง„ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ๊ทผ์ด๊ฐ€ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌํƒ•์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋ณด๋“œ์˜ ํฌ๊ธฐ N์ด ์ฃผ์–ด์ง„๋‹ค. (3 ≤ N ≤ 50) ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๋ณด๋“œ์— ์ฑ„์›Œ์ ธ ์žˆ๋Š” ์‚ฌํƒ•์˜ ์ƒ‰์ƒ์ด ์ฃผ์–ด์ง„๋‹ค. ๋นจ๊ฐ„์ƒ‰์€ C, ํŒŒ๋ž€์ƒ‰์€ P, ์ดˆ๋ก์ƒ‰์€ Z, ๋…ธ๋ž€์ƒ‰์€ Y๋กœ ์ฃผ์–ด์ง„๋‹ค. ์‚ฌํƒ•์˜ ์ƒ‰์ด ๋‹ค๋ฅธ..
Progammers ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - [์ฒด์œก๋ณต] Python ํŒŒ์ด์ฌ ํ’€์ด https://school.programmers.co.kr/learn/courses/30/lessons/42862# ๐Ÿ“ ๋ฌธ์ œ ๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ โœ๏ธ ์ž…์ถœ๋ ฅ ๐Ÿ’ก ํ’€์ด ๋ฌธ์ œ ์กฐ๊ฑด์—์„œ '์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ๋„๋‚œ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ๋‹ค' ๋ผ๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— lost์™€ reserve์—์„œ ์ค‘๋ณต๋˜๋Š” ๊ฒƒ๋“ค์€ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ for๋ฌธ์—์„œ ์ค‘๋ณต ์—ฌ๋ถ€๋งŒ ๋”ฐ์ ธ remove๋ฅผ ์‚ฌ์šฉํ•ด ์ œ๊ฑฐํ–ˆ๋‹ค. ์ œ์ถœํ•˜๋‹ˆ 90%๋งŒ ๋งž๊ณ  ์ผ๋ถ€ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์—๋Š” ์‹คํŒจ๊ฐ€ ๋‚˜์™”๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด ์‚ญ์ œํ•˜์ง€ ์•Š์„ ๋ฒˆํ˜ธ๋“ค๋งŒ ๋„ฃ์–ด ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” new_lost๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด reserve์— ์—†๋Š” ๋ฒˆํ˜ธ๋“ค์€ ์ƒˆ ๋ฐฐ์—ด์— ์ €์žฅํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ i-1, i+1์„ ํ™•์ธํ•ด ์ฒด์œก๋ณต์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋ฉด lost์—์„œ ํ•ด๋‹น..
[Baekjoon] ๋ฐฑ์ค€ 14719 '๋น—๋ฌผ' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 14719 ๋ฌธ์ œ 2์ฐจ์› ์„ธ๊ณ„์— ๋ธ”๋ก์ด ์Œ“์—ฌ์žˆ๋‹ค. ๋น„๊ฐ€ ์˜ค๋ฉด ๋ธ”๋ก ์‚ฌ์ด์— ๋น—๋ฌผ์ด ๊ณ ์ธ๋‹ค. ๋น„๋Š” ์ถฉ๋ถ„ํžˆ ๋งŽ์ด ์˜จ๋‹ค. ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰์€ ์–ผ๋งˆ์ผ๊นŒ? ์ž…๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” 2์ฐจ์› ์„ธ๊ณ„์˜ ์„ธ๋กœ ๊ธธ์ด H๊ณผ 2์ฐจ์› ์„ธ๊ณ„์˜ ๊ฐ€๋กœ ๊ธธ์ด W๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ H, W ≤ 500) ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ๋ธ”๋ก์ด ์Œ“์ธ ๋†’์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” 0์ด์ƒ H์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ 2์ฐจ์› ์„ธ๊ณ„์˜ ๋งจ ์™ผ์ชฝ ์œ„์น˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ W๊ฐœ ์ฃผ์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ธ”๋ก ๋‚ด๋ถ€์˜ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธธ ์ˆ˜ ์—†๋‹ค. ๋˜ 2์ฐจ์› ์„ธ๊ณ„์˜ ๋ฐ”๋‹ฅ์€ ํ•ญ์ƒ ๋ง‰ํ˜€์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ๋„ ์ข‹๋‹ค. ์ถœ๋ ฅ 2์ฐจ์› ์„ธ๊ณ„์—์„œ๋Š” ํ•œ ์นธ์˜ ์šฉ๋Ÿ‰์€ 1์ด๋‹ค. ๊ณ ์ด๋Š” ๋น—๋ฌผ์˜ ์ด๋Ÿ‰์„ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ๋น—๋ฌผ์ด ์ „ํ˜€ ๊ณ ์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ๐Ÿง ํ’€์ด ์ฒซ ๋ฒˆ์งธ ์นธ๊ณผ ๋งˆ์ง€๋ง‰ ์นธ์—๋Š” ๋น—๋ฌผ์ด ๊ณ ์ด์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฒ”..
[Baekjoon] ๋ฐฑ์ค€ 15686 '์น˜ํ‚จ ๋ฐฐ๋‹ฌ' ๋ฌธ์ œํ’€์ด Python, ํŒŒ์ด์ฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๐Ÿ“ 15686 ๋ฌธ์ œ ํฌ๊ธฐ๊ฐ€ N×N์ธ ๋„์‹œ๊ฐ€ ์žˆ๋‹ค. ๋„์‹œ๋Š” 1×1ํฌ๊ธฐ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๋„์‹œ์˜ ๊ฐ ์นธ์€ ๋นˆ ์นธ, ์น˜ํ‚จ์ง‘, ์ง‘ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋„์‹œ์˜ ์นธ์€ (r, c)์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , rํ–‰ c์—ด ๋˜๋Š” ์œ„์—์„œ๋ถ€ํ„ฐ r๋ฒˆ์งธ ์นธ, ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ c๋ฒˆ์งธ ์นธ์„ ์˜๋ฏธํ•œ๋‹ค. r๊ณผ c๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ์ด ๋„์‹œ์— ์‚ฌ๋Š” ์‚ฌ๋žŒ๋“ค์€ ์น˜ํ‚จ์„ ๋งค์šฐ ์ข‹์•„ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์‚ฌ๋žŒ๋“ค์€ "์น˜ํ‚จ ๊ฑฐ๋ฆฌ"๋ผ๋Š” ๋ง์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์น˜ํ‚จ ๊ฑฐ๋ฆฌ๋Š” ์ง‘๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์น˜ํ‚จ์ง‘ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ์ด๋‹ค. ์ฆ‰, ์น˜ํ‚จ ๊ฑฐ๋ฆฌ๋Š” ์ง‘์„ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•ด์ง€๋ฉฐ, ๊ฐ๊ฐ์˜ ์ง‘์€ ์น˜ํ‚จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋„์‹œ์˜ ์น˜ํ‚จ ๊ฑฐ๋ฆฌ๋Š” ๋ชจ๋“  ์ง‘์˜ ์น˜ํ‚จ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์ด๋‹ค. ์ž„์˜์˜ ๋‘ ์นธ (r1, c1)๊ณผ (r2, c2) ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋Š” |r1-r2| + |c1-c2|๋กœ ๊ตฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ..

728x90