코딩테스트 연습 3일차

김채원·2023년 1월 30일
0

coding_test

목록 보기
3/11

Lv.1

다래끼가 나서 눈도 안 보이지만...거를 순 없다!!!

나머지가 1이 되는 수 찾기

3아니고 2인 이유는 n의 범위가 3부터라서

  1. 그냥 range(2,n)
  2. 반절만 돌려서 뭔가 할 수 있을법한데...
  • 약수 있는 경우 or 없는 경우 이런식으로..
    아 근데 머리 안 돌아간다.
def solution(n):
    answer = min([x for x in range(2,n) if n%x==1])
    return answer

두 정수 사이의 합

def solution(a, b):
    if a > b:
        a,b = b,a

    lst = list(range(a,b+1))
    answer = sum(lst)
    
    return answer

콜라츠 추측

while문에 조건을 넣을 수 있다는걸 완전히 까먹고 있어서 오래걸림...
1인 경우는 answer를 0으로 두고 1이 아닌 경우만 while문으로 돌린다.
그리고 500넘어가면 굳이 break 하지말고 return으로 종료.

def solution(num):
    answer = 0
    
    while num != 1 : 
        if answer > 500 :
            return -1
        if num % 2 == 0 :
            num = num/2
        else:
            num = num*3 + 1
        answer += 1
                
    
    return answer

서울에서 김서방 찾기

index()로 찾아야할 대상이 명확해서 쉬움

def solution(seoul):
    idx = seoul.index("Kim")
    answer = '김서방은 {}에 있다'.format(idx)
    return answer

나누어 떨어지는 숫자 배열

def solution(arr, divisor):
    answer = []
    
    for item in arr:
        if item % divisor == 0:
            answer.append(item)
            
    if len(answer) == 0:
        answer.append(-1)    
    
    answer.sort()
    
    return answer

핸드폰 번호 가리기

문자열 슬라이싱

def solution(phone_number):
    answer = ''
    
    pl = len(phone_number)
    front = phone_number[:pl-4] #앞자리 저장
    back = phone_number[-4:] #뒷자리 저장

    answer = len(front)*"*"+back

    return answer
profile
잡다한 공부 기록용

0개의 댓글