250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level 2 (์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ) ๋ณธ๋ฌธ

๐Ÿ“ Coding Test/Programmers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต level 2 (์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ)

ใ…… ใ…œ ใ…” ใ…‡ 2022. 11. 20. 16:11
728x90

1. ๋ฌธ์ œ ์„ค๋ช…

์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š”, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด ์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ๊ทธ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 1์„, ์•„๋‹ ๊ฒฝ์šฐ 0์„ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด S = baabaa ๋ผ๋ฉด

b aa baa → bb aa → aa 

์˜ ์ˆœ์„œ๋กœ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

2. ์ œํ•œ ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด : 1,000,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

3. ๋‚ด ํ’€์ด

def solution(s):
    ss = ['0']
    for i in s:
        if i != ss[-1]:
            ss.append(i)

        else:
            ss.pop(-1)
            
    if ''.join(ss[1:]) == '':
        return 1
    else:
        return 0

1. index error๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ˆซ์ž 0์„ ๋ฆฌ์ŠคํŠธ ss์— ์ถ”๊ฐ€ํ•ด์คŒ

2. for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๋‚ด์˜ ์›์†Œ์— ํ•˜๋‚˜์”ฉ ์ ‘๊ทผ

3. ๋ฌธ์ž์—ด์˜ ์›์†Œ๊ฐ€ ๋ฆฌ์ŠคํŠธ ss์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ์™€ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€, ๋™์ผํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ ์ œ๊ฑฐ

4. ์ตœ์ข… ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์›์†Œ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด 1๋ฐ˜ํ™˜, ์•„๋‹ˆ๋ฉด 0 ๋ฐ˜ํ™˜

 

 

 

 

4. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

def solution(s):
    answer = []
    for i in s:
        if not(answer):
            answer.append(i)
        else:
            if(answer[-1] == i):
                answer.pop()
            else:
                answer.append(i)    
    return not(answer)
728x90
Comments