STUDY/Python

프로그래머스 코딩테스트 입문 파이썬 lv.0 (8)

둥둥런 2023. 2. 3. 15:29

lv.0 100문제 금방 풀 줄 알았는데, 점점 난이도가 올라가니까

한 문제씩 푸는 속도가 느려지고 있다.

이제 교육 끝났으니 다시 성실히 풀어봐야지

 

중복된 문자 제거
https://school.programmers.co.kr/learn/courses/30/lessons/120888

  • if not a in b: not 위치 기억하기
  • 문자열은 +, 리스트는 append
def solution(my_string):
    answer = ''
    for i in my_string:
        if not i in answer:
            answer += i
    return answer

 

합성수 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/120846

def solution(n):
    answer = 0
    if n == 1 or n == 2 or n == 3:
        return 0
    for i in range(2, n+1):
        for j in range(2, i):
            if i % j == 0:
                answer += 1
                break
    return answer

 

모스부호
https://school.programmers.co.kr/learn/courses/30/lessons/120838?language=python3

- 딕셔너리 get 활용... morse[i]라고 활용하는 방법 몰랐음!!

def solution(letter):
    answer = ''
    morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'}
    for i in letter.split(' '):
        answer += morse.get(i) 
    return answer

리스트 컴프리헨션 풀이

def solution(letter):
    morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'}
    return ''.join([ morse[i] for i in letter.split()])

 

A로 B만들기
https://school.programmers.co.kr/learn/courses/30/lessons/120886

sorted()하고 .sort()하고 헷갈리지 말자

def solution(before, after):
    if sorted(list(before)) == sorted(list(after)):
        return 1
    else:
        return 0