Algorithm/1일 1코테
-
[프로그래머스 Python] 나누어 떨어지는 숫자 배열Algorithm/1일 1코테 2020. 9. 20. 23:09
문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 입출력 예 ARR DIVISOR RETURN [5,9,7,10] 5 [5,10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3, 2, 6] 10 [-1] 내 답 def solution(arr, divisor): answer = [] for i in range(len(arr)): if arr[i] % divisor == 0: answer.append(arr[i]) answer = sorted(answer) if len(answer) == 0: answ..
-
[프로그래머스 Python] 같은 숫자는 싫어Algorithm/1일 1코테 2020. 9. 20. 22:59
문제 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 입출력 예 ARR ANSWER [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 내 답..
-
[프로그래머스 Python] 가운데 글자 가져오기Algorithm/1일 1코테 2020. 9. 20. 22:47
문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 입출력 예시 S RETURN abcde c qwer we 내 답 def solution(s): b = int(len(s)/2) if len(s) % 2 == 0: return s[b-1] + s[b] # s[b-1:b+1] else: return s[b] 알고리즘 1. s를 절반으로 나눠준 값을 b에 저장한다. 2. 만약 s가 짝수라면 b-1과 b를 출력한다. (s가 4일때 나누기 2는 2=b --> index로 1과 2가 가운데 값이므로 출력) 3. s가 홀수라면 b 출력 (5/2 = 2.5인데 int이므로 2, index 2가 가운데 값이므로 출력) 다른사람 풀이 ..
-
[프로그래머스 Python] 두 개 뽑아서 더하기Algorithm/1일 1코테 2020. 9. 20. 22:35
문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 내 답 def solution(numbers): answer = [] for i in range(0, len(numbers)-1): for j in range(i+1, len(numbers)): a = numbers[i] + numbers[j] if a not in answer: answer.append(a) answer = sorted(answer) return..
-
[백준알고리즘 Python] 2445 별찍기-8Algorithm/1일 1코테 2020. 9. 16. 21:11
www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 내가 쓴 답 n = int(input()) #입력받아 n으로 저장 a = 2*n # 정확히 2n-1 만큼 출력해야 함. 자주 사용할거라 a로 저장 for i in range(1, a): #1부터 2n-1까지 출력 (5 입력하면 9줄, 3 입력하면 5줄) if i
-
[백준알고리즘] 10951Algorithm/1일 1코테 2020. 8. 26. 22:53
내가 작성한 코드 for i in range(0, int(input()): a, b = map(int, input().split()) list.append(a) list.append(b) for i in range(0, len(list), 2): print(list[i] + list[i+1]) ㅎㅎ... 코드 진짜 개구림.. 문제 이해 잘못해서 일단 input 쫙 출력하고 output 쫙 나와야되는줄 알았다 ㅎㅎ.. input은 너무 느려서? 런타임 에러 발생 그래서 찾아보니 sys를 사용해보란다 import sys for line in sys.stdin: a,b = map(int, line.split()) print(a+b) sys.stdin.readline -- 하나씩 입력 sys.stdin -- 여..
-
[백준알고리즘] 1000번 - A+BAlgorithm/1일 1코테 2020. 8. 26. 21:57
흑흑 ㅜㅜ 교육 왜 들었지.. 후회될만큼 자괴감이 느껴진다 ㅎ A, B를 입력받아 A+B를 출력하는 문제다! int(input())으로 해도 안되길래 아니 어떻게 하라는겨~~~ 하다 답을 봤는데 ㅎ A, B = map(int, input().split()) print(A+B) 와.. map을 저렇게도 쓸 수 있단 걸 처음 앎 ㅎㅎ input을 두개 받을 수 있다는 것도 그렇고^^~ 자세한 얘기는 여기! https://dojang.io/mod/page/view.php?id=2179 파이썬 코딩 도장: 6.4 입력 값을 변수 두 개에 저장하기 지금까지 input 한 번에 값 하나만 입력받았습니다. 그럼 input 한 번에 값을 여러 개 입력받으려면 어떻게 해야 할까요? 이때는 input에서 split을 사용..