어제부터 코테 준비를 하는 중이다. 에전에 백준으로 많이 연습했었는데 문제와 함께 보기에 불편해서 프로그래머스로 하는 중이다. 어제 너무 안풀려서 손가락이 부들거렸다. 그래서 정답률 높은 순서로 정렬해서 풀어봤다.
20문제:):) 기록하고 싶은 문제 5개만 뽑아서 써야겠다
개인정보 보호를 위해 휴대폰 뒤 4자리를 제외한 숫자들을 '*'로 표시하는 것이다.
이 문제를 보고 슬라이싱으로 풀어야겠다는 생각이 들었다. 하지만 방식을 살짝쿵 잊어서 이론을 찾아보며 해결했다.
def solution(phone_number):
answer = ''
except_last_phone_number = phone_number[:-4]
answer='*' * len(except_last_phone_number)+phone_number[-4:]
return answer
한 사람의 추측한 이론을 코드로 구현하기. 짝,홀수 구분 및 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
배열 안에 값들을 확인하고 부호를 맞춰주어 연산하는 문제. 간단하게 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
배열 요소에서 김서방 찾기. 간단하게 index만 이해하고 있다면 풀 수 있다.
def solution(seoul):
answer = ''
answer="김서방은 "+str(seoul.index('Kim'))+"에 있다"
return answer
입력으로 받은 배열에서 최소값을 제거하고 반환. remove함수만 알고 있다면 해결 가능!
def solution(arr):
answer = []
arr.remove(min(arr))
answer=arr
if not answer:
answer=[-1]
return answer
사실 오늘 문제들은 쉬웠지만 이론을 찾아봐야 하는 경우도 많았다. 평소 코딩을 하며 검색이나 챗지피티를 제외하고 하지 않으니, 순수하게 내 머릿 속에서 나오는 실력은 얼마 없었던 거같다. 사실 필요한 정보를 잘 찾아서 적재적소에 배치하는 것이 개발자의 능력이라고 생각하지만 기초 알고리즘이 머리에 없다면 불가능한 일이다. 쉽더라도 확실하게 알고, 기록하자!