본문 바로가기
반응형

Coding Test/프로그래머스 코딩테스트 입문31

Python 외계행성의 나이 [코딩테스트 입문 - Day8] 문제 구현 아스키코드 표를 참고해서 각 알파벳을 숫자에 매핑하여 리턴해준다. 코드 def solution(age): answer='' for i in str(age): answer+=chr(ord(i)+49) return answer 아스키코드표를 참고해서 아스키코드(48 : 0)에 49를 더하면 아스키코드(97 : a) 알파벳이 나온다. 다른 풀이 def solution(age): return ''.join([chr(int(i)+97) for i in str(age)]) 숫자 그대로에 97을 더해줘서 알파벳을 리턴해주는 방법도 있다. 2023. 2. 15.
Python 진료 순서 정하기 [코딩테스트 입문 - Day8] 문제 구현 임시 리스트에 내림차순으로 emergency 정렬한 것을 저장한 후 임시 리스트를 돌며 emergency에서 원소를 찾아 인덱스를 찾는다. 코드 def solution(emergency): temp = sorted(emergency, reverse=True) answer = [temp.index(i)+1 for i in emergency] return answer 다른 풀이 위보다 간단하게 푸는 법은 보이지 않지만 약간의 효율성을 더 따진다면 enumerate를 쓴 후 index로 접근하면 된다. def solution(emergency): answer = [] emer_ls = {e: i + 1 for i, e in enumerate(sorted(emergency)[::-1])} for e .. 2023. 2. 15.
Python 배열 자르기 [코딩테스트 입문 - Day8] 문제 구현 slice를 이용해 num1부터 num2+1까지 자른 리스트를 리턴해준다. 코드 def solution(numbers, num1, num2): return numbers[num1:num2+1] 다른 풀이 def solution(numbers, num1, num2): return [numbers[i] for i in range(num1, num2+1)] range와 list comprehension을 이용해서 이렇게 할 수도 있다. 2023. 2. 15.
Python 순서쌍의 개수 [코딩테스트 입문 - Day8] 문제 구현 1부터 n까지 반복하며 나누어 떨어지는 수들을 체크하고 마지막에 리턴해준다. 코드 def solution(n): answer =0 for i in range(n): if n % (i+1) ==0: answer +=1 return answer 다른 풀이 조금 더 효율성을 따지고 싶다면 제곱근까지 조사하고 완전제곱수인지 판단해서 리턴해주면 된다. def solution(n): answer=0 for i in range(1, int(n**0.5)+1): if n%i==0: answer+=1 return answer*2 if n**0.5!=int(n**0.5) else answer*2-1 코드는 길어지지만 시간은 많이 줄어든다. 2023. 2. 15.
반응형