코딩테스트
-
[프로그래머스 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..
-
[코테] K번째 수Algorithm/1일 1코테 2020. 3. 12. 19:44
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..
-
[코테] 모의고사 - enumerateAlgorithm/1일 1코테 2020. 3. 11. 13:51
다들 너무 똑똑한거 아니냐고!!! 혼자 스스로 짜보다가 도저히 못풀겠어서 결국 다른 분 답 참고 ㅠㅠ 어떻게 저렇게 생각할 수 있는지 너무너무 천재같다.... 열심히 해야지! 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마..
-
[코테] 완주하지 못한 선수 - sort, zip, collectionsAlgorithm/1일 1코테 2020. 3. 10. 22:53
sort 순서대로 정렬해주는 함수 = list.sort() zip 여러개의 리스트를 짝지어주는 함수 = for x,y in zip(a,b) 리스트 [-1]은 맨 뒤에서부터 출력한다. def solution(participant, completion): participant.sort() completion.sort() for x,y in zip(participant, completion): if x != y: return x retrun participant[-1] import collections def solution(participant, completion): answer = collections.Counter(participant) - collections.Counter(completion) re..