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

Algorithm

(120)
[BOJ] ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ (#2941) ๋ฌธ์ œ ์˜ˆ์ „์—๋Š” ์šด์˜์ฒด์ œ์—์„œ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์„ ์ž…๋ ฅํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์„ ๋ณ€๊ฒฝํ•ด์„œ ์ž…๋ ฅํ–ˆ๋‹ค. ฤ c= ฤ‡ c- dลพ dz= ฤ‘ d- lj lj nj nj š s= ลพ z= ์˜ˆ๋ฅผ ๋“ค์–ด, ljes=njak์€ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ 6๊ฐœ(lj, e, š, nj, a, k)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ช‡ ๊ฐœ์˜ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. dลพ๋Š” ๋ฌด์กฐ๊ฑด ํ•˜๋‚˜์˜ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์“ฐ์ด๊ณ , d์™€ ลพ๊ฐ€ ๋ถ„๋ฆฌ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š๋Š”๋‹ค. lj์™€ nj๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์œ„ ๋ชฉ๋ก์— ์—†๋Š” ์•ŒํŒŒ๋ฒณ์€ ํ•œ ๊ธ€์ž์”ฉ ์„ผ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ตœ๋Œ€ 100๊ธ€์ž์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ '-', '='๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‹จ์–ด๋Š” ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋ฌธ์ œ ์„ค๋ช…์˜ ํ‘œ์—..
[BOJ] ๋‚˜๋ฌด ์กฐ๊ฐ (#2947) ๋ฌธ์ œ ๋™ํ˜์ด๋Š” ๋‚˜๋ฌด ์กฐ๊ฐ์„ 5๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‚˜๋ฌด ์กฐ๊ฐ์—๋Š” 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ˆซ์ž ์ค‘ ํ•˜๋‚˜๊ฐ€ ์“ฐ์—ฌ์ ธ ์žˆ๋‹ค. ๋˜, ๋ชจ๋“  ์ˆซ์ž๋Š” ๋‹ค์„ฏ ์กฐ๊ฐ ์ค‘ ํ•˜๋‚˜์—๋งŒ ์“ฐ์—ฌ ์žˆ๋‹ค. ๋™ํ˜์ด๋Š” ๋‚˜๋ฌด ์กฐ๊ฐ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ 1, 2, 3, 4, 5 ์ˆœ์„œ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ๋‘ ๋ฒˆ์งธ ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ๋‘˜์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋ฐ”๊พผ๋‹ค. ๋‘ ๋ฒˆ์งธ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ์„ธ ๋ฒˆ์งธ ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ๋‘˜์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋ฐ”๊พผ๋‹ค. ์„ธ ๋ฒˆ์งธ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ๋„ค ๋ฒˆ์งธ ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ๋‘˜์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋ฐ”๊พผ๋‹ค. ๋„ค ๋ฒˆ์งธ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ๋‹ค์„ฏ ๋ฒˆ์งธ ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ๋‘˜์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋ฐ”๊พผ๋‹ค. ๋งŒ์•ฝ ์ˆœ์„œ๊ฐ€ 1, 2, 3, 4, 5 ์ˆœ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด 1 ๋‹จ๊ณ„๋กœ ๋‹ค์‹œ ๊ฐ„๋‹ค. ์ฒ˜์Œ ์กฐ๊ฐ์˜ ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ ๋งˆ๋‹ค ์กฐ๊ฐ์˜ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ..
[Leetcode] Last Stone Weight (#1046) ๋ฌธ์ œ You are given an array of integers stones where stones[i] is the weight of the ith stone. We are playing a game with the stones. On each turn, we choose the heaviest two stones and smash them together. Suppose the heaviest two stones have weights x and y with x
[BOJ] ๋ฐฉ ๋ฒˆํ˜ธ (#1475) ๋ฌธ์ œ ๋‹ค์†œ์ด๋Š” ์€์ง„์ด์˜ ์˜†์ง‘์— ์ƒˆ๋กœ ์ด์‚ฌ์™”๋‹ค. ๋‹ค์†œ์ด๋Š” ์ž๊ธฐ ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ์˜ˆ์œ ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋กœ ๋ฌธ์— ๋ถ™์ด๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด์˜ ์˜†์ง‘์—์„œ๋Š” ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋ฅผ ํ•œ ์„ธํŠธ๋กœ ํŒ๋‹ค. ํ•œ ์„ธํŠธ์—๋Š” 0๋ฒˆ๋ถ€ํ„ฐ 9๋ฒˆ๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด์žˆ๋‹ค. ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•„์š”ํ•œ ์„ธํŠธ์˜ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. (6์€ 9๋ฅผ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ณ , 9๋Š” 6์„ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.) ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ํ•„์š”ํ•œ ์„ธํŠธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‚˜์˜ ์ฝ”๋“œ N = str(input()) new_array = [] N = N.replace('9','6') # 9๋Š” ์ „๋ถ€ 6์œผ๋กœ ๋ฐ”๊ฟˆ cnt = 0 P = list(set(N)) #..
[BOJ] ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ0 (#11866) ๋ฌธ์ œ ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ์›์„ ์ด๋ฃจ๋ฉด์„œ ์•‰์•„์žˆ๊ณ , ์–‘์˜ ์ •์ˆ˜ K(≤ N)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด์ œ ์ˆœ์„œ๋Œ€๋กœ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ•œ๋‹ค. ํ•œ ์‚ฌ๋žŒ์ด ์ œ๊ฑฐ๋˜๋ฉด ๋‚จ์€ ์‚ฌ๋žŒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์›์„ ๋”ฐ๋ผ ์ด ๊ณผ์ •์„ ๊ณ„์†ํ•ด ๋‚˜๊ฐ„๋‹ค. ์ด ๊ณผ์ •์€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ๋ชจ๋‘ ์ œ๊ฑฐ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋œ๋‹ค. ์›์—์„œ ์‚ฌ๋žŒ๋“ค์ด ์ œ๊ฑฐ๋˜๋Š” ์ˆœ์„œ๋ฅผ (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (7, 3)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์€ ์ด๋‹ค. N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง€๋ฉด (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 1,000) ์ถœ๋ ฅ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ/์ถœ๋ ฅ 7 3 - > ํ•ด์„ค ์ฝ”๋“œ n,k = map(in..
[BOJ] ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ 1 (#14467) ๋ฌธ์ œ ๋‹ญ์ด ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ ๋Š” ๊ณผํ•™์ ์œผ๋กœ ๊นŠ๊ฒŒ ์—ฐ๊ตฌ๊ฐ€ ๋˜์–ด ์žˆ์ง€๋งŒ, ์˜์™ธ๋กœ ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ ๋Š” ๊ฑฐ์˜ ์—ฐ๊ตฌ๋œ ์ ์ด ์—†๋‹ค. ์ด ์ฃผ์ œ์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋˜ ๋†๋ถ€ ์กด์€ ํ•œ ๋Œ€ํ•™์œผ๋กœ๋ถ€ํ„ฐ ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๋Š” ์ด์œ ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ ์ œ์˜๋ฅผ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค. ์กด์ด ํ•  ์ผ์€ ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๋Š” ๊ฒƒ์„ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์กด์€ ์†Œ์˜ ์œ„์น˜๋ฅผ N๋ฒˆ ๊ด€์ฐฐํ•˜๋Š”๋ฐ, ๊ฐ ๊ด€์ฐฐ์€ ์†Œ์˜ ๋ฒˆํ˜ธ์™€ ์†Œ์˜ ์œ„์น˜ ํ•˜๋‚˜์”ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์กด์€ ์†Œ๋ฅผ 10๋งˆ๋ฆฌ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์†Œ์˜ ๋ฒˆํ˜ธ๋Š” 1 ์ด์ƒ 10 ์ดํ•˜์˜ ์ •์ˆ˜๊ณ , ์†Œ์˜ ์œ„์น˜๋Š” ๊ธธ์˜ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์„ ์˜๋ฏธํ•˜๋Š” 0๊ณผ 1 ์ค‘ ํ•˜๋‚˜๋‹ค. ์ด ๊ด€์ฐฐ ๊ธฐ๋ก์„ ๊ฐ€์ง€๊ณ  ์†Œ๊ฐ€ ์ตœ์†Œ ๋ช‡ ๋ฒˆ ๊ธธ์„ ๊ฑด๋„œ๋Š”์ง€ ์•Œ์•„๋ณด์ž. ์ฆ‰ ๊ฐ™์€ ๋ฒˆํ˜ธ์˜ ์†Œ๊ฐ€ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ ๊ฒƒ์ด ๋ช‡ ๋ฒˆ์ธ์ง€ ์„ธ๋ฉด ๋œ๋‹ค. ์ž…๋ ฅ ์ฒซ ์ค„์— ๊ด€์ฐฐ ํšŸ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ ..
[BOJ] ํ”„๋ฆฐํ„ฐ ํ (#1966) ๋ฌธ์ œ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์— ์Œ“์—ฌ์„œ FIFO - First In First Out - ์— ๋”ฐ๋ผ ์ธ์‡„๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ๊ทผ์ด๋Š” ์ƒˆ๋กœ์šด ํ”„๋ฆฐํ„ฐ๊ธฐ ๋‚ด๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๋Š”๋ฐ, ์ด ํ”„๋ฆฐํ„ฐ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ธ์‡„๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ํ˜„์žฌ Queue์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฌธ์„œ์˜ ‘์ค‘์š”๋„’๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ๋ฌธ์„œ๋“ค ์ค‘ ํ˜„์žฌ ๋ฌธ์„œ๋ณด๋‹ค ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋‹ค๋ฉด, ์ด ๋ฌธ์„œ๋ฅผ ์ธ์‡„ํ•˜์ง€ ์•Š๊ณ  Queue์˜ ๊ฐ€์žฅ ๋’ค์— ์žฌ๋ฐฐ์น˜ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋ฐ”๋กœ ์ธ์‡„๋ฅผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Queue์— 4๊ฐœ์˜ ๋ฌธ์„œ(A B C D)๊ฐ€ ์žˆ๊ณ , ์ค‘์š”๋„๊ฐ€ 2 ..
[BOJ] ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด (#2960) ๋ฌธ์ œ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋Š” N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 2๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ์ ๋Š”๋‹ค. ์•„์ง ์ง€์šฐ์ง€ ์•Š์€ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. ์ด๊ฒƒ์„ P๋ผ๊ณ  ํ•˜๊ณ , ์ด ์ˆ˜๋Š” ์†Œ์ˆ˜์ด๋‹ค. P๋ฅผ ์ง€์šฐ๊ณ , ์•„์ง ์ง€์šฐ์ง€ ์•Š์€ P์˜ ๋ฐฐ์ˆ˜๋ฅผ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ์ง€์šด๋‹ค. ์•„์ง ๋ชจ๋“  ์ˆ˜๋ฅผ ์ง€์šฐ์ง€ ์•Š์•˜๋‹ค๋ฉด, ๋‹ค์‹œ 2๋ฒˆ ๋‹จ๊ณ„๋กœ ๊ฐ„๋‹ค. N, K๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, K๋ฒˆ์งธ ์ง€์šฐ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K < N, max(1, K) < N ≤ 1000) ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— K๋ฒˆ์งธ ์ง€์›Œ์ง„ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํ•ด์„ค ์ฝ”๋“œ N,K = map(int,input().split()) array = ["True"]*(N+1) cnt=0 pri..