코딩테스트 메모

SUSU·2023년 10월 7일
0
  1. https://school.programmers.co.kr/learn/courses/30/lessons/12922
    길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수

나는 그냥 정석으로 풀었는데 다른사람 풀이 중에 띠용 한게 있었다.

def water_melon(n):
    # 함수를 완성하세요.
    str = "수박"*n
    return str[:n]

ㅋㅋ 글자 길이를 충분히 늘린 후 slide 로 글자를 길이만큼 잘라냈다
메모리 효율은 둘째치고 생각하는 센스가 좋으신듯

  1. 실패율
    https://school.programmers.co.kr/learn/courses/30/lessons/42889

    result = [0]*N 를 한다음 해당 스태이지에 멈춰 있는 유저의 숫자들 리스트를 만들려고 했는데 잘 안됐음.(stage에 써 있는 숫자를 기준으로 index 가져오기)
    근데 예시를 보니까 스테이지가 5 개이고 멈춰있는 숫자가 6이면 이미 클리어한 유저기 때문에 위 방법으론 자꾸 outOfIndex 뜸...ㅠ 이렇게 하면 안되는군

    암튼 여기저기 코테 풀이 참고 하며 완성함..스스로 못풀면 괴로워 ㅠㅠ

    def solution(N, stages):
    answer = []
        
    user = len(stages)
    fail_late = {} #맵 형식으로 "스테이지":"실패율" 로 채워 나가기
    
    for i in range(1,N+1): #스테이지 1 부터 N 까지의 실패율을 구할것 
        if i in stages:
            fail_late[i] = stages.count(i)/user #1 부터 N 키값에 각각 실패율을 밸류로 넣어줌
            user -= stages.count(i) #분모가 바뀌기 때문에 해당 처리도 해줌
        else:
            fail_late[i] = 0 #해당 stage에 멈춰있는 유저가 없다는 뜻
    
    #값을 기준으로 맵을 정렬
    sorted_fail_late = sorted(fail_late.items(), key=lambda x: x[1], reverse=True)
    
    #정렬된 맵에서 키값만 빼서 리스트로 만들기
    answer = [ num[0] for num in sorted_fail_late ]
            
    print(answer)
    
    return answer
  2. 키패드 누르기
    https://school.programmers.co.kr/learn/courses/30/lessons/67256
    스바.. 이게 인턴쉽 문제? 이게 초급?
    이라고 생각했는데 생각보다 쉬운 문제 같음...-> 아님 쥰내 어렵 ㅠ
    가장 최근의 손가락 위치를 측정해야 하는 줄 알고

             #지금 까지 만들어 진 글자의 마지막 L, R 의 거리를 재서 짧은 쪽의 값으로 해줘야함
              re_answer = answer[::-1]
              left_p = re_answer.find("L") 
              right_p = re_answer.find("R")
              
              left_now = numbers[len(answer)-left_p-1] #만들어진 문장의 길이에서 현재 L이 위치한 숫자
              right_now = numbers[len(answer)-right_p-1] #만들어진 문장의 길이에서 현재 R이 위치한 숫자

    이런 뻘짓함 ㅠ

    근데 무슨 거리 구하는 공식이 있더라고...
    내일 다시 풀게요ㅠㅠ

profile
기록용

0개의 댓글