๋‚ด ์ธ์ƒ์—์„œ ๋ฏฟ์„ ๊ฑด ์˜ค์ง ๋‚˜ ์ž์‹ ๋ฟ!

The only one you can truly trust is yourself.

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆ˜์‹ ์ตœ๋Œ€ํ™” (2020 ์นด์นด์˜ค ์ธํ„ด์‰ฝ, ์ˆœ์—ด, ์ •๊ทœํ‘œํ˜„์‹, ์—ฐ์‚ฐ์ž)

๐ŸŽฎinspirer9 2023. 3. 1. 08:20
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

IT ๋ฒค์ฒ˜ ํšŒ์‚ฌ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ๋ผ์ด์–ธ์€ ๋งค๋…„ ์‚ฌ๋‚ด ํ•ด์ปคํ†ค ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ•˜์—ฌ ์šฐ์Šน์ž์—๊ฒŒ ์ƒ๊ธˆ์„ ์ง€๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ๋Š” ์šฐ์Šน์ž์—๊ฒŒ ์ง€๊ธ‰๋˜๋Š” ์ƒ๊ธˆ์„ ์ด์ „ ๋Œ€ํšŒ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด์ปคํ†ค ๋Œ€ํšŒ์— ์ฐธ๊ฐ€ํ•˜๋Š” ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋“ค์—๊ฒŒ๋Š” ์ˆซ์ž๋“ค๊ณผ 3๊ฐ€์ง€์˜ ์—ฐ์‚ฐ๋ฌธ์ž(+, -, *) ๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฐ์‚ฐ ์ˆ˜์‹์ด ์ „๋‹ฌ๋˜๋ฉฐ, ์ฐธ๊ฐ€์ž์˜ ๋ฏธ์…˜์€ ์ „๋‹ฌ๋ฐ›์€ ์ˆ˜์‹์— ํฌํ•จ๋œ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์žฌ์ •์˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹จ, ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ƒˆ๋กœ ์ •์˜ํ•  ๋•Œ, ๊ฐ™์€ ์ˆœ์œ„์˜ ์—ฐ์‚ฐ์ž๋Š” ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, + > - > * ๋˜๋Š” - > * > + ๋“ฑ๊ณผ ๊ฐ™์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ +,* > - ๋˜๋Š” * > +,-์ฒ˜๋Ÿผ 2๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋„๋ก ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •์˜ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹์— ํฌํ•จ๋œ ์—ฐ์‚ฐ์ž๊ฐ€ 2๊ฐœ๋ผ๋ฉด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์กฐํ•ฉ์€ 2! = 2๊ฐ€์ง€์ด๋ฉฐ, ์—ฐ์‚ฐ์ž๊ฐ€ 3๊ฐœ๋ผ๋ฉด 3! = 6๊ฐ€์ง€ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ€ ์Œ์ˆ˜๋ผ๋ฉด ํ•ด๋‹น ์ˆซ์ž์˜ ์ ˆ๋Œ“๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ์ถœํ•˜๋ฉฐ ์ œ์ถœํ•œ ์ˆซ์ž๊ฐ€ ๊ฐ€์žฅ ํฐ ์ฐธ๊ฐ€์ž๋ฅผ ์šฐ์Šน์ž๋กœ ์„ ์ •ํ•˜๋ฉฐ, ์šฐ์Šน์ž๊ฐ€ ์ œ์ถœํ•œ ์ˆซ์ž๋ฅผ ์šฐ์Šน์ƒ๊ธˆ์œผ๋กœ ์ง€๊ธ‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฐธ๊ฐ€์ž ์ค‘ ๋„ค์˜ค๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆ˜์‹์„ ์ „๋‹ฌ๋ฐ›์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

"100-200*300-500+20"

์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ•™ ๋ฐ ์ „์‚ฐํ•™์—์„œ ์•ฝ์†๋œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ฅด๋ฉด ๋”ํ•˜๊ธฐ์™€ ๋นผ๊ธฐ๋Š” ์„œ๋กœ ๋™๋“ฑํ•˜๋ฉฐ ๊ณฑํ•˜๊ธฐ๋Š” ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ์— ๋น„ํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์•„ * > +,- ๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€ํšŒ ๊ทœ์น™์— ๋”ฐ๋ผ + > - > * ๋˜๋Š” - > * > + ๋“ฑ๊ณผ ๊ฐ™์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ +,* > - ๋˜๋Š” * > +,- ์ฒ˜๋Ÿผ 2๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋„๋ก ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •์˜ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
์ˆ˜์‹์— ์—ฐ์‚ฐ์ž๊ฐ€ 3๊ฐœ ์ฃผ์–ด์กŒ์œผ๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์กฐํ•ฉ์€ 3! = 6๊ฐ€์ง€์ด๋ฉฐ, ๊ทธ ์ค‘ + > - > * ๋กœ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•œ๋‹ค๋ฉด ๊ฒฐ๊ด๊ฐ’์€ 22,000์›์ด ๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด์— * > + > - ๋กœ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•œ๋‹ค๋ฉด ์ˆ˜์‹์˜ ๊ฒฐ๊ด๊ฐ’์€ -60,420 ์ด์ง€๋งŒ, ๊ทœ์น™์— ๋”ฐ๋ผ ์šฐ์Šน ์‹œ ์ƒ๊ธˆ์€ ์ ˆ๋Œ“๊ฐ’์ธ 60,420์›์ด ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ฐ€์ž์—๊ฒŒ ์ฃผ์–ด์ง„ ์—ฐ์‚ฐ ์ˆ˜์‹์ด ๋‹ด๊ธด ๋ฌธ์ž์—ด expression์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์šฐ์Šน ์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ƒ๊ธˆ ๊ธˆ์•ก์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • expression์€ ๊ธธ์ด๊ฐ€ 3 ์ด์ƒ 100 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • expression์€ ๊ณต๋ฐฑ๋ฌธ์ž, ๊ด„ํ˜ธ๋ฌธ์ž ์—†์ด ์˜ค๋กœ์ง€ ์ˆซ์ž์™€ 3๊ฐ€์ง€์˜ ์—ฐ์‚ฐ์ž(+, -, *) ๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์˜ฌ๋ฐ”๋ฅธ ์ค‘์œ„ํ‘œ๊ธฐ๋ฒ•(์—ฐ์‚ฐ์˜ ๋‘ ๋Œ€์ƒ ์‚ฌ์ด์— ์—ฐ์‚ฐ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹)์œผ๋กœ ํ‘œํ˜„๋œ ์—ฐ์‚ฐ์‹์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์—ฐ์‚ฐ์‹์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ฆ‰, "402+-561*"์ฒ˜๋Ÿผ ์ž˜๋ชป๋œ ์ˆ˜์‹์€ ์˜ฌ๋ฐ”๋ฅธ ์ค‘์œ„ํ‘œ๊ธฐ๋ฒ•์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • expression์˜ ํ”ผ์—ฐ์‚ฐ์ž(operand)๋Š” 0 ์ด์ƒ 999 ์ดํ•˜์˜ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
    • ์ฆ‰, "100-2145*458+12"์ฒ˜๋Ÿผ 999๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ํฌํ•จ๋œ ์ˆ˜์‹์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • "-56+100"์ฒ˜๋Ÿผ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์Œ์ˆ˜์ธ ์ˆ˜์‹๋„ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • expression์€ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋”๋ผ๋„, expression์˜ ์ค‘๊ฐ„ ๊ณ„์‚ฐ๊ฐ’๊ณผ ์ตœ์ข… ๊ฒฐ๊ด๊ฐ’์€ ์ ˆ๋Œ“๊ฐ’์ด 263 - 1 ์ดํ•˜๊ฐ€ ๋˜๋„๋ก ์ž…๋ ฅ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ์—ฐ์‚ฐ์ž๋ผ๋ฆฌ๋Š” ์•ž์— ์žˆ๋Š” ๊ฒƒ์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

expression result
"100-200*300-500+20" 60420
"50*6-3*2" 300

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1
* > + > - ๋กœ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ–ˆ์„ ๋•Œ, ๊ฐ€์žฅ ํฐ ์ ˆ๋Œ“๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฐ์‚ฐ ์ˆœ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
100-200*300-500+20
= 100-(200*300)-500+20
= 100-60000-(500+20)
= (100-60000)-520
= (-59900-520)
= -60420
๋”ฐ๋ผ์„œ, ์šฐ์Šน ์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒ๊ธˆ์€ |-60420| = 60420 ์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2
- > * ๋กœ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ–ˆ์„ ๋•Œ, ๊ฐ€์žฅ ํฐ ์ ˆ๋Œ“๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฐ์‚ฐ ์ˆœ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.(expression์—์„œ + ์—ฐ์‚ฐ์ž๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.)
50*6-3*2
= 50*(6-3)*2
= (50*3)*2
= 150*2
= 300
๋”ฐ๋ผ์„œ, ์šฐ์Šน ์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒ๊ธˆ์€ 300 ์ž…๋‹ˆ๋‹ค.

ํ’€์ด

  • ์ •๊ทœ ํ‘œํ˜„์‹ ์ฐพ๋Š”๋ฐ ํ•œ ๋ฐ˜๋‚˜์ ˆ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ใ…‹ใ…‹ใ…‹
    • ์“ธ๋ฐ์—†์ด ๋ธ”๋กœ๊ทธ๋‚˜ ์—ฌ๊ธฐ์ €๊ธฐ ๋’ค์ง€์ง€ ๋ง๊ณ  ์œ„ํ‚ค ๋ณด๊ณ  ์—ฐ์Šตํ•˜์ž ใ… .ใ… 
import re

def solution(expression):
    operator = []
    formula = []
    print(re.split('([^\\d])',expression))
    return 1
    

ํ…Œ์ŠคํŠธ 1
์ž…๋ ฅ๊ฐ’ ใ€‰	"100-200*300-500+20"
๊ธฐ๋Œ“๊ฐ’ ใ€‰	60420
์‹คํ–‰ ๊ฒฐ๊ณผ ใ€‰	์‹คํ–‰ํ•œ ๊ฒฐ๊ด๊ฐ’ 1์ด ๊ธฐ๋Œ“๊ฐ’ 60420๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ถœ๋ ฅ ใ€‰	['100', '-', '200', '*', '300', '-', '500', '+', '20']
ํ…Œ์ŠคํŠธ 2
์ž…๋ ฅ๊ฐ’ ใ€‰	"50*6-3*2"
๊ธฐ๋Œ“๊ฐ’ ใ€‰	300
์‹คํ–‰ ๊ฒฐ๊ณผ ใ€‰	์‹คํ–‰ํ•œ ๊ฒฐ๊ด๊ฐ’ 1์ด ๊ธฐ๋Œ“๊ฐ’ 300๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ถœ๋ ฅ ใ€‰	['50', '*', '6', '-', '3', '*', '2']
ํ…Œ์ŠคํŠธ 3
์ž…๋ ฅ๊ฐ’ ใ€‰	"1+1*10+20-22223"
๊ธฐ๋Œ“๊ฐ’ ใ€‰	1
์‹คํ–‰ ๊ฒฐ๊ณผ ใ€‰	ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ถœ๋ ฅ ใ€‰	['1', '+', '1', '*', '10', '+', '20', '-', '22223']
import re
import itertools

def solution(expression):
    operators = set()
    formula = re.split('([^\\d])',expression)
    for i in formula:
        if i == "*" or i == "+" or i == "-":
            operators.add(i)
    operators_perm = itertools.permutations(operators,len(operators))
    for ops in operators_perm:
        _form = formula.copy()
        _tmp = []
        for op in ops:
            print(_form)
            for i in range(len(_form)):
                if _form[i] in ops:
                    if _form[i] == op:
                        _t = _tmp.pop(-1)
                        if op == "+": _t += int(_form[i+1])
                        if op == "-": _t -= int(_form[i+1])
                        if op == "*": _t *= int(_form[i+1])
                        _tmp.append(_t)
                        i += 1
                    else:
                        _tmp.append(_form[i])
                else:
                    _tmp.append(int(_form[i]))
            _form = _tmp.copy()
            print(_form)
    return 1
  • ๋‹ค ๋งž๋Š” ์ค„ ์•Œ์•˜์ง€๋งŒ ๊ณ„์† 3๊ฐœ ํ‹€๋ ค์„œ... ๋ญ์ง€ ํ•˜๋ฉด์„œ ํ…Œ์ผ€ ๋„ฃ์–ด๋ณด๋‹ค๊ฐ€ ์ด๊ฑฐ ํ•œ ์ค„ ์ถ”๊ฐ€
    • if (len(_form)) == 1: answer.append(abs(int(_form[0])))
      • ๊ฐ€๋” ์ œ๋Œ€๋กœ ๊ณ„์‚ฐ ์•ˆ๋˜๋Š” ์ผ€์ด์Šค๊ฐ€ ์žˆ๋‹ค.
        • while ๋ฃจํ”„๋ฅผ ๋น ์ ธ๋‚˜์˜ค๊ณ  ๋ฐ˜๋ณตํ•˜๋Š” ๋™์•ˆ ์ œ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜๋Š”๋ฐ answer์— ์ถ”๊ฐ€ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฑฐ์˜€๋‹ค. ๋ฐ”๋ณด ใ…‹ใ…‹ใ…‹
import re
import itertools

def solution(expression):
    answer = []
    operators = set()
    formula = re.split('([^\\d])',expression)
    for i in formula:
        if i == "*" or i == "+" or i == "-":
            operators.add(i)
    operators_perm = itertools.permutations(operators,len(operators))
    for ops in operators_perm:
        _form = formula.copy()
        for op in ops:
            while op in _form:
                i = _form.index(op)
                if op == "+": _form[i-1]  = int(_form[i-1]) + int(_form[i+1])
                if op == "-": _form[i-1]  = int(_form[i-1]) - int(_form[i+1])
                if op == "*": _form[i-1]  = int(_form[i-1]) * int(_form[i+1])
                _form.pop(i)
                _form.pop(i)
            # if (len(_form)) == 1: # ์ด๊ฑฐ ํ•„์š”์—†๊ณ 
                # answer.append(abs(int(_form[0])))
        answer.append(abs(int(_form[0]))) # ๋“ค์—ฌ์“ฐ๊ธฐ ํ•œ๋‹จ๊ณ„ ์•ž์œผ๋กœใ…‹
    
    return max(answer)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.4MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.10ms, 10.3MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.14ms, 10.4MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.4MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.5MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.14ms, 10.4MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.5MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.4MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.4MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.4MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.5MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰	ํ†ต๊ณผ (0.31ms, 10.3MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰	ํ†ต๊ณผ (0.22ms, 10.4MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰	ํ†ต๊ณผ (0.22ms, 10.4MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰	ํ†ต๊ณผ (0.25ms, 10.3MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰	ํ†ต๊ณผ (0.12ms, 10.4MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰	ํ†ต๊ณผ (0.13ms, 10.3MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.4MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.4MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.5MB)
ํ…Œ์ŠคํŠธ 21 ใ€‰	ํ†ต๊ณผ (0.12ms, 10.3MB)
ํ…Œ์ŠคํŠธ 22 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.3MB)
ํ…Œ์ŠคํŠธ 23 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.4MB)
ํ…Œ์ŠคํŠธ 24 ใ€‰	ํ†ต๊ณผ (0.24ms, 10.4MB)
ํ…Œ์ŠคํŠธ 25 ใ€‰	ํ†ต๊ณผ (0.23ms, 10.5MB)
ํ…Œ์ŠคํŠธ 26 ใ€‰	ํ†ต๊ณผ (0.10ms, 10.3MB)
ํ…Œ์ŠคํŠธ 27 ใ€‰	ํ†ต๊ณผ (0.23ms, 10.4MB)
ํ…Œ์ŠคํŠธ 28 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.3MB)
ํ…Œ์ŠคํŠธ 29 ใ€‰	ํ†ต๊ณผ (0.14ms, 10.3MB)
ํ…Œ์ŠคํŠธ 30 ใ€‰	ํ†ต๊ณผ (0.14ms, 10.4MB)
  • ๊ณ ์ˆ˜์˜ ํ’€์ด
    • ์™ค์ผ€ ์งง์•„....;;;
def solution(expression):
    operations = [('+', '-', '*'),('+', '*', '-'),('-', '+', '*'),('-', '*', '+'),('*', '+', '-'),('*', '-', '+')]
    answer = []
    for op in operations:
        a = op[0]
        b = op[1]
        temp_list = []
        for e in expression.split(a):
            temp = [f"({i})" for i in e.split(b)]
            temp_list.append(f'({b.join(temp)})')
        answer.append(abs(eval(a.join(temp_list))))
    return max(answer)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.3MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.2MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.13ms, 10.2MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.23ms, 10.3MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (0.18ms, 10.3MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.2MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.2MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.2MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.21ms, 10.2MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.22ms, 10.2MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.21ms, 10.3MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰	ํ†ต๊ณผ (0.24ms, 10.3MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰	ํ†ต๊ณผ (0.26ms, 10.2MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰	ํ†ต๊ณผ (0.28ms, 10.3MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰	ํ†ต๊ณผ (0.33ms, 10.3MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰	ํ†ต๊ณผ (0.10ms, 10.3MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.2MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.3MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰	ํ†ต๊ณผ (0.17ms, 10.2MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰	ํ†ต๊ณผ (0.11ms, 10.2MB)
ํ…Œ์ŠคํŠธ 21 ใ€‰	ํ†ต๊ณผ (0.28ms, 10.2MB)
ํ…Œ์ŠคํŠธ 22 ใ€‰	ํ†ต๊ณผ (0.29ms, 10.4MB)
ํ…Œ์ŠคํŠธ 23 ใ€‰	ํ†ต๊ณผ (0.09ms, 10.1MB)
ํ…Œ์ŠคํŠธ 24 ใ€‰	ํ†ต๊ณผ (0.31ms, 10.2MB)
ํ…Œ์ŠคํŠธ 25 ใ€‰	ํ†ต๊ณผ (0.29ms, 10.1MB)
ํ…Œ์ŠคํŠธ 26 ใ€‰	ํ†ต๊ณผ (0.09ms, 10.2MB)
ํ…Œ์ŠคํŠธ 27 ใ€‰	ํ†ต๊ณผ (0.30ms, 10.3MB)
ํ…Œ์ŠคํŠธ 28 ใ€‰	ํ†ต๊ณผ (0.32ms, 10.2MB)
ํ…Œ์ŠคํŠธ 29 ใ€‰	ํ†ต๊ณผ (0.46ms, 10.3MB)
ํ…Œ์ŠคํŠธ 30 ใ€‰	ํ†ต๊ณผ (0.30ms, 10.2MB)
  • ์ •๊ทœํ‘œํ˜„์‹ ์•ˆ์จ๋„ ๋˜๋Š”๊ฑฐ์˜€๋„ค...
import re
from itertools import permutations

def solution(expression):
    #1
    op = [x for x in ['*','+','-'] if x in expression]
    op = [list(y) for y in permutations(op)]
    ex = re.split(r'(\D)',expression)

    #2
    a = []
    for x in op:
        _ex = ex[:]
        for y in x:
            while y in _ex:
                tmp = _ex.index(y)
                _ex[tmp-1] = str(eval(_ex[tmp-1]+_ex[tmp]+_ex[tmp+1]))
                _ex = _ex[:tmp]+_ex[tmp+2:]
        a.append(_ex[-1])

    #3
    return max(abs(int(x)) for x in a)

์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.4MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.3MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.33ms, 10.4MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.38ms, 10.3MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (0.66ms, 10.4MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.41ms, 10.4MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.44ms, 10.5MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.52ms, 10.3MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.58ms, 10.3MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.66ms, 10.3MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.61ms, 10.4MB)
ํ…Œ์ŠคํŠธ 12 ใ€‰	ํ†ต๊ณผ (0.73ms, 10.3MB)
ํ…Œ์ŠคํŠธ 13 ใ€‰	ํ†ต๊ณผ (0.73ms, 10.3MB)
ํ…Œ์ŠคํŠธ 14 ใ€‰	ํ†ต๊ณผ (0.82ms, 10.3MB)
ํ…Œ์ŠคํŠธ 15 ใ€‰	ํ†ต๊ณผ (0.92ms, 10.3MB)
ํ…Œ์ŠคํŠธ 16 ใ€‰	ํ†ต๊ณผ (0.25ms, 10.3MB)
ํ…Œ์ŠคํŠธ 17 ใ€‰	ํ†ต๊ณผ (0.43ms, 10.4MB)
ํ…Œ์ŠคํŠธ 18 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.4MB)
ํ…Œ์ŠคํŠธ 19 ใ€‰	ํ†ต๊ณผ (0.15ms, 10.3MB)
ํ…Œ์ŠคํŠธ 20 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.3MB)
ํ…Œ์ŠคํŠธ 21 ใ€‰	ํ†ต๊ณผ (0.23ms, 10.4MB)
ํ…Œ์ŠคํŠธ 22 ใ€‰	ํ†ต๊ณผ (0.43ms, 10.4MB)
ํ…Œ์ŠคํŠธ 23 ใ€‰	ํ†ต๊ณผ (0.21ms, 10.4MB)
ํ…Œ์ŠคํŠธ 24 ใ€‰	ํ†ต๊ณผ (0.91ms, 10.5MB)
ํ…Œ์ŠคํŠธ 25 ใ€‰	ํ†ต๊ณผ (0.86ms, 10.4MB)
ํ…Œ์ŠคํŠธ 26 ใ€‰	ํ†ต๊ณผ (0.14ms, 10.3MB)
ํ…Œ์ŠคํŠธ 27 ใ€‰	ํ†ต๊ณผ (0.89ms, 10.4MB)
ํ…Œ์ŠคํŠธ 28 ใ€‰	ํ†ต๊ณผ (0.42ms, 10.5MB)
ํ…Œ์ŠคํŠธ 29 ใ€‰	ํ†ต๊ณผ (0.35ms, 10.3MB)
ํ…Œ์ŠคํŠธ 30 ใ€‰	ํ†ต๊ณผ (0.40ms, 10.3MB)

๊น”๋”์Ÿ์ด๋“ค ใ…ก.ใ…ก

728x90
๋ฐ˜์‘ํ˜•