프로그래머스 level1

xlxlshinee·2021년 3월 13일
0

두 개 뽑아서 더하기

def solution(numbers):
    sum_number = []
    sumn = 0
    
    for i in range(len(numbers)):
        for j in range(i+1, len(numbers)):
            sumn = numbers[i] + numbers[j]
            sum_number.append(sumn)

    sum_number = set(sum_number)
    sum_number = list(sum_number)
    sum_number.sort()
    return sum_number

완주하지 못한 선수

def solution(participant, completion):

    for i in range(len(completion)):
        if completion[i] in participant:
            participant.remove(completion[i])
    

    for j in participant:
        return j

participant = list(map(str, input().split()))
completion = list(map(str, input().split()))
solution(participant, completion)

신규 아이디 추천

: 진짜 테스트케이스 너무 많고 까다롭다ㅠㅠㅠ
아무것도 안보고 혼자 풀고 싶어서 하고 있는데
테스트 케이스를 모르니까 놓친 게 뭔지 잘 모르겠다...
50%만 맞다가 88.5%까지 끌어올렸는데 26개 테스트 케이스 중에서 3개 틀렸다 대체 몰까....
어이없었던 것은 특수문자...ㅎ 특수문자를 모두 제외시켰어야 하는데 몇 가지 빼먹어서 틀렸었다.
혹시 그런 문제인가ㅠㅠ??


뭘까...
일단 다른 사람들 것 보면서 틀린 점을 찾아야겠다.

def solution(new_id):
        
    # 1. 대문자 -> 소문자
    new_id = new_id.lower()
    print(new_id)
    
    # 2. 특수 문자와 ..., .., 공백 제거    
    special = "!@#*+^=$%&()<>?/[]\{}|,''""~`;:"
    for i in range(len(special)):
        new_id = new_id.replace(special[i], "")
    new_id = new_id.replace("...",".")
    new_id = new_id.replace("..", ".")
    new_id = new_id.replace(" ", "")
    print(new_id)
    
    # 3. 처음과 끝의 . 제거, 16자 이상이면 15개까지만.
    new_id = new_id.lstrip(".")
    new_id = new_id.rstrip(".")
    
    if len(new_id) >= 16:
        new_id = new_id[:15]
        new_id = new_id.rstrip(".")
    

    # 4. 빈 문자열에는 a 대입 
    if len(new_id) == 0:
        new_id = new_id + "a"
        
    if len(new_id) <= 2:
        while len(new_id) <= 2:
            new_id = new_id + new_id[-1]
    return new_id
profile
늦더라도 차근 차근 앞으로 걷기

0개의 댓글