[코테 준비 : day02]

Choi·2023년 6월 23일
0

코딩테스트 준비

목록 보기
2/22

기초부터 쌓아가기..!

어제부터 코테 준비를 하는 중이다. 에전에 백준으로 많이 연습했었는데 문제와 함께 보기에 불편해서 프로그래머스로 하는 중이다. 어제 너무 안풀려서 손가락이 부들거렸다. 그래서 정답률 높은 순서로 정렬해서 풀어봤다.

20문제:):) 기록하고 싶은 문제 5개만 뽑아서 써야겠다

  1. 핸드폰 번호 가리기
    https://school.programmers.co.kr/learn/courses/30/lessons/12948

개인정보 보호를 위해 휴대폰 뒤 4자리를 제외한 숫자들을 '*'로 표시하는 것이다.
이 문제를 보고 슬라이싱으로 풀어야겠다는 생각이 들었다. 하지만 방식을 살짝쿵 잊어서 이론을 찾아보며 해결했다.

def solution(phone_number):
    answer = ''
    except_last_phone_number = phone_number[:-4]
    answer='*' * len(except_last_phone_number)+phone_number[-4:]

    return answer
  1. 콜라츠 추측
    https://school.programmers.co.kr/learn/courses/30/lessons/12943

한 사람의 추측한 이론을 코드로 구현하기. 짝,홀수 구분 및 while문을 사용한다면 간단하게 풀 수 있는 문제다.

def solution(num):
    cnt = 0
    
    while True:
        if num == 1:
            break
        if cnt == 500:
            break
        if num %2 == 0:
            num //= 2
            cnt += 1
        else:
            num = num * 3 + 1
            cnt += 1
            
    return cnt if cnt != 500 else -1
  1. 음양 더하기
    https://school.programmers.co.kr/learn/courses/30/lessons/76501

배열 안에 값들을 확인하고 부호를 맞춰주어 연산하는 문제. 간단하게 if문에 조건만 걸어서 true라는 것만 확인하면 될 것을 괜히 어렵게 생각해서 돌아갔다. 하지만 해결!

def solution(absolutes, signs):
    answer = 0
    for i in range(len(signs)):
        if signs[i]:
            answer += absolutes[i]
        else:
            answer-=absolutes[i]
    
    return answer
  1. 서울에서 김서방 찾기
    https://school.programmers.co.kr/learn/courses/30/lessons/12919

배열 요소에서 김서방 찾기. 간단하게 index만 이해하고 있다면 풀 수 있다.

def solution(seoul):
    answer = ''
    answer="김서방은 "+str(seoul.index('Kim'))+"에 있다"
    return answer
  1. 제일 작은 수 제거하기
    https://school.programmers.co.kr/learn/courses/30/lessons/12935

입력으로 받은 배열에서 최소값을 제거하고 반환. remove함수만 알고 있다면 해결 가능!

def solution(arr):
    answer = []
    arr.remove(min(arr))
    answer=arr
    if not answer:
        answer=[-1]
    return answer

사실 오늘 문제들은 쉬웠지만 이론을 찾아봐야 하는 경우도 많았다. 평소 코딩을 하며 검색이나 챗지피티를 제외하고 하지 않으니, 순수하게 내 머릿 속에서 나오는 실력은 얼마 없었던 거같다. 사실 필요한 정보를 잘 찾아서 적재적소에 배치하는 것이 개발자의 능력이라고 생각하지만 기초 알고리즘이 머리에 없다면 불가능한 일이다. 쉽더라도 확실하게 알고, 기록하자!

profile
느려도 내 것으로 만드는게 좋잖아?

0개의 댓글