๐Ÿ’ฏ CodingTest/BaekJoon

[BaekJoon] 1541 ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ

S.Honey 2022. 4. 15. 10:02

โ–ถ ๋ฌธ์ œ :

 

 

โ–ถ ์ฝ”๋“œ : 

 

expr = input()

tempExpr = ''
tempNum = ''

# + ๊ธฐํ˜ธ๋ฅผ ํฌํ•จํ•˜๋ฉด ๋ง์…ˆ์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
def exprSum(strData):
    if '+' in strData:
            for i in range(len(strData)):
                if strData[i] == '+':
                    return str(int(strData[:i]) + int(strData[i+1:]))
    return strData

# ์šฐ์„ ์ ์œผ๋กœ ์‹์— ํฌํ•จ๋œ + ๊ธฐํ˜ธ๋ฅผ ์ด์šฉํ•œ ๋ง์…ˆ์„ ์ง„ํ–‰ ์‹์—์„œ + ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์€ ๋ชจ๋‘ ๋”ํ•ด์คŒ
for i in range(len(expr)):
    if i == len(expr) - 1:
        tempNum += expr[i]
        tempNum = exprSum(tempNum)
        tempExpr += tempNum
    elif expr[i] == '-' or expr[i] == '+':
        tempNum = exprSum(tempNum)
        if expr[i] == '-':
            tempExpr += tempNum + '-'
            tempNum=''
        elif expr[i]== '+':
            tempNum += '+'
    else:
        tempNum += expr[i]

result = 0
tempNum = ''
count = 0

# ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•ด ๋ง์…ˆ์„ ์ง„ํ–‰ํ•œ ์‹์— ๋Œ€ํ•˜์—ฌ ๋‚˜๋จธ์ง€ ์‹์„ ๊ณ„์‚ฐ(๋บ„์…ˆ๋งŒ ์žˆ์Œ)
if '-' in tempExpr:
    for i in range(len(tempExpr)):
        if tempExpr[i] == '-':
            count += 1
            if count == 1:
                result = int(tempNum)
                tempNum=''
            else: 
                result -= int(tempNum)
                tempNum=''
        elif i == len(tempExpr)-1:
            tempNum += tempExpr[i]    
            result -= int(tempNum)
            tempNum=''
        else:
            tempNum += tempExpr[i]    
else:
    result = int(tempExpr)

print(result)

 

โ–ถ ๋ฌธ์ œ ํ’€์ด

 

1. ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ์ ‘๊ทผํ•˜์˜€๋‹ค.

2. ์‹์—์„œ +์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ๋”ํ•ด์ฃผ๊ณ  ๋งˆ์ง€๋ง‰์— ํ•ด๋‹น ์ˆ˜๋“ค์„ ๋นผ์ฃผ๋ฉด ์ตœ์†Œ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.

3. โ€‹๊ทธ๋ ‡๊ธฐ์— ์šฐ์„ ์ ์œผ๋กœ + ๊ธฐํ˜ธ ๋ถ€๋ถ„์„ ๋ชจ๋‘ ๋”ํ•ด์ฃผ๋„๋กํ•˜์˜€๊ณ , ์ดํ›„ ๋‚˜๋จธ์ง€ ์‹์—์„œ - ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.