[TIL_Carrotww] 36 - 22/10/24

μœ ν˜•μ„Β·2022λ…„ 10μ›” 24일
0

TIL

λͺ©λ‘ 보기
44/138
post-thumbnail

πŸ“Carrotww의 μ½”λ”© 기둝μž₯

🧲 python Algorithm - sort

πŸ”programmers_H-Index sort 문제
μ†”μ§νžˆ 문제λ₯Ό 보고 λ­” μ†Œλ¦¬μΈκ°€ μ‹Άμ—ˆλ‹€. μ œλŒ€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν•΄μ„œ 정렬을 ν•œ ν›„ 평균값을 κ΅¬ν•΄μ„œ 풀이λ₯Ό 해보기도 ν–ˆκ³ , 잘 μ•ˆν’€λ¦¬μž λ‹€μ‹œ 읽고 ν’€μ—ˆλ‹€.
μ›Œλ‚™ μ½”λ”©ν…ŒμŠ€νŠΈ λ¬Έμ œλ“€μ΄ λ‚œμž‘ν•œ λ¬Έμ œλ“€μ΄ λ§Žμ•„ μ λ‹Ήνžˆ 읽고 μž…μΆœλ ₯ μ˜ˆμ‹œλ₯Ό 보고 좔둠을 자주 ν•˜λŠ” 편인데 그런 μŠ΅κ΄€μ„ μ’€ 쀄여야겠닀.

  • 풀이
def solution(citations):
    citations.sort()

    for i in range(len(citations)):
        if citations[i] >= len(citations) - i:
            return len(citations) - i
    return 0

enumerate으둜 풀어도 λœλ‹€.

def solution(citations):
    citations.sort()

    for num, val in enumerate(citations):
        if val >= len(citations) - num:
            return len(citations) - num
    return 0

μ΄λŸ¬λ‚˜ μ €λŸ¬λ‚˜ λ˜‘κ°™λ‹€.

🧲 python Algorithm - sort

πŸ” programmers κ°€μž₯ 큰 수 sort 문제
처음 ν’€μ΄λŠ” ν‹€λ Έλ‹€. 3, 30, 34 κ°€ μžˆμ„λ•Œ 34κ°€ λ¨Όμ € 였고 3이 κ·Έ λ‹€μŒ κ·Έ λ‹€μŒμ€ 3이 μ™€μ•Όν•œλ‹€. 즉 34330 이 λ˜μ–΄μ•Ό ν•œλ‹€.
이 쑰건을 μ–΄λ–»κ²Œ νŒŒν›Όν•  수 μžˆμ„κΉŒ 생각을 ν•˜λ‹€ μ£Όμ–΄μ§€λŠ” list의 μ›μ†Œκ°€ 1000μ΄ν•˜μ—¬μ„œ κ·Έλƒ₯ μ‹œμ›ν•˜κ²Œ 4자리둜 μ±„μ›Œ μ£Όκ³  μ •λ ¬ ν›„ μ›λ³ΈμœΌλ‘œ μ •λ ¬ν•˜μ˜€λ‹€.
4자리수둜 μ±„μ›Œμ€„λ•Œ 맨 μ•žμžλ¦¬λ‘œ μ±„μ›Œμ£Όμ—ˆλ‹€.
그럼 3333, 3033, 3433 -> 이 되고 정렬을 ν•˜λ©΄ 3433, 3333, 3033 -> 원본은 μœ„ 결과와 κ°™λ‹€.

  • 초기 풀이
def solution(numbers):
    result = []
    numbers = list(map(str, numbers))
    for i in range(len(numbers)):
        temp = numbers[i]
        while len(temp) < 4:
            temp += numbers[i][0]
        result.append((numbers[i], temp))
    result = sorted(result, key=lambda x:x[1], reverse=True)
    return ''.join([x[0] for x in result])

ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” ν†΅κ³Όν•˜μ§€λ§Œ μ™œ μ‹€νŒ¨ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŒ... γ… 
내일 λ‹€μ‹œ 찾아봐야겠닀...

  • μ •λ‹΅ 풀이
def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x:x * 3, reverse=True)
    return str(int(''.join(numbers)))

πŸ’‘ python 숫자 λ¬Έμžμ—΄ 비ꡐ

πŸ” λ‚œ μ§€κΈˆκΉŒμ§€ λ¬Έμžμ—΄ 숫자λ₯Ό λΉ„κ΅ν• λ•Œ κ·Έλƒ₯ 생각없이 μ•„ λΉ„κ΅ν•˜λ‚˜λ³΄λ‹€ ~ ν–ˆλŠ”λ° pythonμ—μ„œ 숫자 λ¬Έμžμ—΄μ„ λΉ„κ΅μ‹œ μ•„μŠ€ν‚€ μ½”λ“œλ‘œ λ³€ν™˜ν•˜μ—¬μ„œ λΉ„κ΅ν•˜λŠ” 것을 이 문제λ₯Ό ν’€λ©° μ•Œμ•˜λ‹€...
즉 '666' 이 '665101010' 보닀 큰 것이닀.
이걸 μ™œ 이제 μ•Œμ•˜μ„κΉŒ...

profile
Carrot_hyeong

0개의 λŒ“κΈ€