๐Ÿงฉ Algorithm/SWEA

[SWEA] 1234. [S/W ๋ฌธ์ œํ•ด๊ฒฐ ๊ธฐ๋ณธ] 10์ผ์ฐจ - ๋น„๋ฐ€๋ฒˆํ˜ธ (Python/D3)

devCloud 2023. 11. 16. 07:23
728x90

 

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


์„ค๋ช…

๋ฒˆํ˜ธ ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ๋ฒˆํ˜ธ๋กœ ๋ถ™์–ด์žˆ๋Š” ์Œ๋“ค์„ ์†Œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ๋ฒˆํ˜ธ๋ฅผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋งŒ๋“ ๋‹ค.

 

ํ’€์ด

์žฌ๊ท€

  1. ๋ฒˆํ˜ธ ๋ฌธ์ž์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ ๋‹ค.
  2. ๋ฆฌ์ŠคํŠธ๋ฅผ ์žฌ๊ท€๋กœ ๋Œ๊ฒŒ ํ•œ๋‹ค.
  3. ๋ฆฌ์ŠคํŠธ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๊ฒŒ ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ด์ „๊ณผ ๊ฐ™์€ ์ˆซ์ž์ด๋ฉด ์ด์ „ ์ˆซ์ž์™€ ํ˜„์žฌ ์ˆซ์ž๋ฅผ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.
  4. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์žฌ๊ท€๋ฅผ ๋Œ๊ฒŒ ํ•œ๋‹ค. 
  5. ์—ฐ์†๋œ ๊ฐ™์€ ์ˆ˜๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ํ˜น์€ ์žฌ๊ท€๋ฅผ ๋Œ๊ฒŒ ํ•˜๊ณ  ๋์ด ๋‚˜๋ฉด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ€ป ๊ฒฐ๊ณผ๊ฐ’ ๋งจ ์•ž์— 0์ด ์žˆ์œผ๋ฉด ์•ˆ ๋˜๋ฏ€๋กœ ์ œ๊ฑฐํ•ด์ค˜์•ผ ํ•œ๋‹ค.

Solution

def calc(password):
    for i in range(1, len(password)): 
        if password[i-1] == password[i]: #์ด์ „๊ณผ ๊ฐ™์€ ์ˆซ์ž์ด๋ฉด
            password.pop(i) #ํ˜„์žฌ ์ˆซ์ž ์ œ๊ฑฐ
            password.pop(i-1) #์ด์ „ ์ˆซ์ž ์ œ๊ฑฐ
            return calc(password) #๋‹ค์‹œ ์žฌ๊ท€ ๋Œ๋ฆฌ๊ธฐ
    return password #์žฌ๊ท€ ๋ชจ๋‘ ๋Œ์•˜์œผ๋ฉด ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜

for tc in range(1, 11):
    n, password = map(int, input().split())
    word = []
    print('#'+str(tc), end=' ')
    for i in str(password): #์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค๊ธฐ
        word.append(i)
    word = calc(word) #๊ฒฐ๊ณผ ์ €์žฅ
    if word[0] == '0': #๋งจ ์•ž์ด 0์ด๋ฉด ์ œ๊ฑฐ
        word.pop(0) #pop์€ ์ธ๋ฑ์Šค ์‚ญ์ œ
    for j in word:
        print(j, end='')
    print()

 

๋‹ค๋ฅธ ํ’€์ด

for tc in range(1, 11):
    n, password = input().split()
    n = int(n)

    stk = []

    for c in password:
        if stk and c == stk[-1]:
            stk.pop()
        else:
            stk.append(c)

    result = ''.join(stk)

    print('#'+str(tc), result)

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ  

1, 2, 3์ฐจ ์ œ์ถœ์— ์‹คํŒจํ–ˆ์—ˆ๋Š”๋ฐ, ํ’€์ด๊ฐ€ ์ž˜๋ชป๋œ ์ค„ ์•Œ์•˜๋Š”๋ฐ ๊ฒฐ๊ณผ๊ฐ’ ๋งจ ์•ž์— 0์ด ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฑธ ๋Œ“๊ธ€์—์„œ ์•Œ๊ฒŒ ๋๋‹ค. ์ด ์กฐ๊ฑด๊นŒ์ง€ ์„ค๋ช…์— ์žˆ์—ˆ๋‹ค๋ฉด ๋ฐ”๋กœ ํ’€์—ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.. ์•„์‰ฝ๋‹ค.

 

๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ์—„์ฒญ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘ผ ์‚ฌ๋žŒ๋„ ์žˆ๋‹ค.. ๋งŽ์ด ๋ฐฐ์›Œ์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.


728x90