Algorithm
-
[프로그래머스 Python] 자연수 뒤집어 배열로 만들기Algorithm/1일 1코테 2020. 9. 23. 13:37
문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 입출력 예시 내 답 def solution(n): n = str(n) answer = [] for i in range(1, len(n)+1): a = int(n[-i]) answer.append(a) return answer 알고리즘 n에서 거꾸로 뽑은 값 answer에 하나씩 append. 그런데 생각해보니까 파이썬 알고리즘 인터뷰에서 [::-1]이 있었다!! 내 답 2 def solution(n): n = str(n) answer = [] for i in n: answer.append(int(i)) answer = answer[::-1] return ans..
-
[프로그래머스 Python] 자릿수 더하기Algorithm/1일 1코테 2020. 9. 23. 13:03
문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 입출력 예시 내 답1 def solution(n): sum = 0 n = str(n) for i in range(len(n)): sum += int(n[i]) return sum 알고리즘 n을 str로 바꿔주고 하나씩 출력하여 sum에 더해줌 문득 리스트로 바꾸면 sum()을 이용해 한번에 처리할 수 있겠단 생각이 들음! 내 답2 def solution(n): return sum([int(i) for i in str(n)]) 성공^~^
-
[프로그래머스 Python] 이상한 문자 만들기Algorithm/1일 1코테 2020. 9. 23. 12:51
문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 입출력 예시 내 답 def solution(s): answer = '' a = s.split() for word in a: for j in range(len(word)): if j%2 == 0: answer += word[j].upper() else: answer += word[j].lower() answer += ' ' return answer[:-1] 알고리즘 1. 공백을 기준으로 answer을 나눠준다. (try, hello, world)로 나뉨 2. 짝수면 대문..
-
[프로그래머스 Python] 약수의 합Algorithm/1일 1코테 2020. 9. 23. 11:35
문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 내 답 def solution(n): answer = 0 for i in range(1,n+1): if n%i == 0: answer += i return answer 알고리즘 1. n을 i(1부터 n까지)로 나누어서 나머지가 0인수는(=약수) answer에 더 한다 2. answer 출력 다른사람 풀이 def sumDivisor(num): # num / 2 의 수들만 검사하면 성능 약 2배 향상잼 return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0]) num//2로 범위지정(모든 약수는 반만 계산하면 되기 때문에) list com..
-
[프로그래머스 Python] 수박수박수박수박수박수?Algorithm/1일 1코테 2020. 9. 22. 11:58
문제 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 내 답 def solution(n): a = '' for i in range(1, n+1): if i%2 == 1: a += '수' else: a += '박' return a 알고리즘 홀수면 '수', 짝수면 '박' 다른사람 풀이 def water_melon(n): s = "수박" * n return s[:n]
-
[프로그래머스 Python] 서울에서 김서방 찾기Algorithm/1일 1코테 2020. 9. 22. 11:29
문제 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 입출력 예시 내 답 def solution(seoul): for i in range(len(seoul)): if seoul[i] == 'Kim': return '김서방은 {}에 있다'.format(i) 알고리즘 1. for문을 이용해 kim을 찾은 뒤, 문자열 format를 이용해 리턴 다른사람 풀이 def findKim(seoul): return "김서방은 {}에 있다".format(seoul.index('Kim')) ㅎㅎㅎㅎ index따위 생각도 못함~~~~~~
-
[프로그래머스 Python] 문자열 내 마음대로 정렬하기Algorithm/1일 1코테 2020. 9. 22. 11:15
문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 입출력 예시 내 답 def solution(strings, n): sort_list = [] for s in strings: sort_list.append(s[n] + ':' + s) sort_list = sorted(sort_list) answer = [] for s in sort_list: a = s.split(':') answer.append(a[1]) return answer 알고리즘 1. string에서 하나씩 출..
-
[프로그래머스 Python] 문자열 다루기 기본Algorithm/1일 1코테 2020. 9. 22. 10:27
문제 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 내 답 def solution(s): if s.isnumeric() == True and len(s) == (4 or 6): return True return False 알고리즘 s가 모두 숫자고(isnumeric==True), 길이가 4 또는 6이면 True 다른사람 풀이 def alpha_string46(s): return s.isdigit() and len(s) in (4, 6) isdigit()은 문자열이 숫자인지 아닌지 체크해주는 것 isalpha()는 문자열이 문자인지 아닌지 체크해주는 것 i..