๐Ÿ’ป Coding/[Algorithm]Python 14

์†Œํ”„ํ‹ฐ์–ด | ๋ฐ”์ด๋Ÿฌ์Šค

์†Œํ”„ํ‹ฐ์–ด | ๋ฐ”์ด๋Ÿฌ์Šค ๋ฌธ์ œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์ˆ™์ฃผ์˜ ๋ชธ์†์—์„œ 1์ดˆ๋‹น P๋ฐฐ์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค. ์ฒ˜์Œ์— ๋ฐ”์ด๋Ÿฌ์Šค K๋งˆ๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด N์ดˆ ํ›„์—๋Š” ์ด ๋ช‡ ๋งˆ๋ฆฌ์˜ ๋ฐ”์ด๋Ÿฌ์Šค๋กœ ๋ถˆ์–ด๋‚ ๊นŒ? N์ดˆ ๋™์•ˆ ์ฃฝ๋Š” ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.์ œ์•ฝ์กฐ๊ฑด 1 โ‰ค K โ‰ค 108์ธ ์ •์ˆ˜ 1 โ‰ค P โ‰ค 108์ธ ์ •์ˆ˜ 1 โ‰ค N โ‰ค 106์ธ ์ •์ˆ˜์ถœ๋ ฅ ํ˜•์‹ ์ตœ์ข… ๋ฐ”์ด๋Ÿฌ์Šค ๊ฐœ์ˆ˜๋ฅผ 1000000007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.๋‚ด ํ’€์ด import sys K, P, N = map(int, input().split()) for i in range(N): K = (K*P)%1000000007 print(K) ํ’€์ด๋Š” ๊ฐ„๋‹จํ•œ ํ’€์ด์ด๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€ ๋•Œ print๊ฐ’์„ result ๋กœ ๋ฝ‘๋Š” ๊ฑธ ์ข‹์•„ํ•˜๊ณ  ์Šต๊ด€์ด ๋˜์–ด์žˆ์–ด์„œ ์•„๋ฌด์ƒ๊ฐ์—†์ด ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ  ํ’€์—ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€..

์†Œํ”„ํ‹ฐ์–ด | ๊ธˆ๊ณ ํ„ธ์ด

์†Œํ”„ํ‹ฐ์–ด | ๊ธˆ๊ณ ํ„ธ์ด ๋ฌธ์ œ ๋ฃจํŒก์€ ๋ฐฐ๋‚ญ์„ ํ•˜๋‚˜ ๋ฉ”๊ณ  ์€ํ–‰๊ธˆ๊ณ ์— ๋“ค์–ด์™”๋‹ค. ๊ธˆ๊ณ  ์•ˆ์—๋Š” ๊ฐ’๋น„์‹ผ ๊ธˆ, ์€, ๋ฐฑ๊ธˆ ๋“ฑ์˜ ๊ท€๊ธˆ์† ๋ฉ์–ด๋ฆฌ๊ฐ€ ์ž”๋œฉ ๋“ค์–ด์žˆ๋‹ค. ๋ฐฐ๋‚ญ์€ W ใŽ๊นŒ์ง€ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๊ธˆ์†์˜ ๋ฌด๊ฒŒ์™€ ๋ฌด๊ฒŒ๋‹น ๊ฐ€๊ฒฉ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ฐฐ๋‚ญ์„ ์ฑ„์šธ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ’๋น„์‹ผ ๊ฐ€๊ฒฉ์€ ์–ผ๋งˆ์ธ๊ฐ€? ๋ฃจํŒก์€ ์ „๋™ํ†ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ท€๊ธˆ์†์€ ํ†ฑ์œผ๋กœ ์ž๋ฅด๋ฉด ์ž˜๋ ค์ง„ ๋ถ€๋ถ„์˜ ๋ฌด๊ฒŒ๋งŒํผ ๊ฐ€์น˜๋ฅผ ๊ฐ€์ง„๋‹ค. ์ œ์•ฝ์กฐ๊ฑด 1 โ‰ค N โ‰ค 106์ธ ์ •์ˆ˜ 1 โ‰ค W โ‰ค 104์ธ ์ •์ˆ˜ 1 โ‰ค Mi, Pi โ‰ค 104์ธ ์ •์ˆ˜์ž…๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฐฐ๋‚ญ์˜ ๋ฌด๊ฒŒ W์™€ ๊ท€๊ธˆ์†์˜ ์ข…๋ฅ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. i + 1 (1 โ‰ค i โ‰ค N)๋ฒˆ์งธ ์ค„์—๋Š” i๋ฒˆ์งธ ๊ธˆ์†์˜ ๋ฌด๊ฒŒ Mi์™€ ๋ฌด๊ฒŒ๋‹น ๊ฐ€๊ฒฉ Pi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.์ถœ๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฐฐ๋‚ญ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋น„์‹ผ ๊ฐ€๊ฒฉ์„ ์ถœ๋ ฅํ•˜๋ผ.๋‚ด ํ’€..

์ด์ฝ”ํ…Œ | ํฐ ์ˆ˜์˜ ๋ฒ•์น™

์ด์ฝ”ํ…Œ | ํฐ ์ˆ˜์˜ ๋ฒ•์น™ (๊ต์žฌ๊ฐ€ ์žˆ๋Š” ์ฑ…์ด๋ฏ€๋กœ ๋ฌธ์ œ๋Š” ๋”ฐ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.) ๋‚ด ํ’€์ด1 N, M, K = map(int, input().split()) data = list(map(int, input().split())) data.sort(reverse=True) result = 0 while True: for i in range(K): if M == 0: break result += data[0] M -= 1 if M == 0: break result += data[1] M -= 1 print(result)๋‚ด ํ’€์ด2 N, M, K = map(int, input().split()) data = list(map(int, input().split())) data.sort(reverse=True) re..

๋ฐฑ์ค€ | 1931 ํšŒ์˜์‹ค ๋ฐฐ์ •ํ•˜๊ธฐ

๋ฐฑ์ค€ | 1931 ํšŒ์˜์‹ค ๋ฐฐ์ •ํ•˜๊ธฐ ๋ฌธ์ œ ํ•œ ๊ฐœ์˜ ํšŒ์˜์‹ค์ด ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” N๊ฐœ์˜ ํšŒ์˜์— ๋Œ€ํ•˜์—ฌ ํšŒ์˜์‹ค ์‚ฌ์šฉํ‘œ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ ํšŒ์˜ I์— ๋Œ€ํ•ด ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ํšŒ์˜๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•˜๋ฉด์„œ ํšŒ์˜์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํšŒ์˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด์ž. ๋‹จ, ํšŒ์˜๋Š” ํ•œ๋ฒˆ ์‹œ์ž‘ํ•˜๋ฉด ์ค‘๊ฐ„์— ์ค‘๋‹จ๋  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•œ ํšŒ์˜๊ฐ€ ๋๋‚˜๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— ๋‹ค์Œ ํšŒ์˜๊ฐ€ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. ํšŒ์˜์˜ ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๋๋‚˜๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ํšŒ์˜์˜ ์ˆ˜ N(1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N+1 ์ค„๊นŒ์ง€ ๊ฐ ํšŒ์˜์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ด๊ฒƒ์€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ํšŒ์˜์˜ ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง„๋‹ค. ์‹œ์ž‘ ์‹œ๊ฐ„๊ณผ ..