Algorithm/Python

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ

ํ•˜์งฑ. 2024. 3. 14. 14:10
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/64065

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ’ก ์•„์ด๋””์–ด

  • ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌํ•˜๊ธฐ
    • },{ ๊ธฐ์ค€์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑํ•˜๊ธฐ
    • , ๊ธฐ์ค€์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑํ•˜๊ธฐ
  • ๋ฆฌ์ŠคํŠธ ๊ธธ์ด ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  • ์ •๋‹ต ๋ฐฐ์—ด์— ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•˜๊ธฐ

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค

s = "{{4,2,3},{3},{2,3,4,1},{2,3}}"
result = [3, 2, 4, 1]

 

๐Ÿ”Ž ํ’€์ด

def solution(s):
    answer = []
	
    ### ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌํ•˜๊ธฐ ###
    s1 = s.lstrip('{').rstrip('}').split('},{') 
    # ['4,2,3', '3', '2,3,4,1', '2,3']

    new_s = []
    for i in s1:
        new_s.append(i.split(','))              
    # [['4', '2', '3'], ['3'], ['2', '3', '4', '1'], ['2', '3']]
    
    ### ๊ธธ์ด ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ###
    new_s.sort(key = len)
    # [['3'], ['2', '3'], ['4', '2', '3'], ['2', '3', '4', '1']]
    
    ### answer ํ•˜๋‚˜์”ฉ ๋„ฃ๊ธฐ ###
    for i in new_s:
        for j in range(len(i)):
            # answer์— ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด ๋„ฃ๊ธฐ 
            if int(i[j]) not in answer:
                answer.append(int(i[j]))

    return answer

solution("{{4,2,3},{3},{2,3,4,1},{2,3}}")

 

+)

s.lstrip('{') : ๋ฌธ์ž์—ด์˜ ์™ผ์ชฝ ๋์—์„œ๋ถ€ํ„ฐ '{' ์ œ๊ฑฐ

.rstrip('{') : ์•ž์— ์ œ๊ฑฐํ•œ ๋ฌธ์ž์—ด์˜ ์˜ค๋ฅธ์ชฝ ๋์—์„œ ๋ถ€ํ„ฐ ')' ์ œ๊ฑฐ

.split('},{') : ๋‚จ์€ ๋ฌธ์ž์—ด์„ '},{' ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ ๋‹ค.

 

new_s.sort(key = len)

key : sorted ๋‚˜ sort์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜. ์ •๋ ฌ ๊ธฐ์ค€์„ ์ •ํ•œ๋‹ค.

 

๋”๋ณด๊ธฐ

โ€ป sort์™€ sorted์˜ ์ฐจ์ด

sortedList = sorted.myList

: sorted๋Š” ์›๋ณธ ๋ฆฌ์ŠคํŠธ ๋ณ€๊ฒฝ ์—†์ด ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. 

myList.sort()

: sort๋Š” ์›๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

728x90