개발노트(150)
-
셀프 넘버
문제 해결을 위해 집합을 사용했습니다. 파이썬에서 집합은 set을 사용해서 만들 수 있습니다. #셀프넘버는 생성자가 없는 숫자를 말한다. #셀프넘버의 예로는 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97.... #71 이면 71+ 7+ 1 set1 = set([]) def solve(i): ans = 0 ans += i for j in str(i): ans += int(j) #ans들 집합에 넣고 1부터 10000의 수와 교집합을 제외하면 나머지만 남는다. #print(ans) set1.add(ans) for i in range(1, 10001): solve(i) set2 = set(range(1, 10001)) set3 = set2 - set1 set3 = sorte..
2019.12.31 -
다음 큰 숫자
조건에 만족하는 수를 찾기 위해서 입력된 n을 파이썬 bin함수를 이용해 2진수로 변환해줬습니다. 2진수로 변환된 수에 몇개의 '1'이 포함되었는지 .count('1)로 확인해줬습니다. n을 증가시키며 2진수의 '1'의 수가 같은 다음 큰 숫자를 찾습니다. def solution(n): answer = 0 base = 2 a = bin(n) count_one = a.count('1') while 1: n += 1 if bin(n).count('1') is count_one: break answer = n return answer
2019.12.10 -
문자열 내 p와 y의 개수
대소문자가 섞여있기 때문에 lower() 함수를 사용했습니다. if 문으로 'P' or 'p' 와 같이 써도 상관없습니다. for문을 돌며 문자열 요소 하나씩 if문으로 비교합니다. 같이 p, y와 같은지 비교하고 각각 카운트합니다. 마지막으로 if문을 사용해 p카운트와 y카운트가 다르면 False값을 가지도록 했습니다. def solution(s): answer = True s = s.lower() p_count = 0 y_count = 0 #다르면 false for string in s: if string is 'p': p_count += 1 if string is 'y': y_count += 1 if p_count is not y_count: answer = False return answer
2019.12.04 -
나누어 떨어지는 숫자 배열
arr 요소를 divisor로 나누고 나머지가 0인 값들만 리스트에 append 시켰습니다. 나누어 떨어지지 않아서 리스트가 비어있다면 -1을 append 시킵니다. return값은 오름차순으로 정렬하기 때문에 sorted를 사용했습니다. def solution(arr, divisor): answer = [] temp = [] for a in arr: if a % divisor is 0: temp.append(a) if not temp: temp.append(-1) temp = sorted(temp) answer = temp return answer
2019.12.04 -
두 정수 사이의 합
입출력 예의 3번째처럼 a가 더 클 수도 있기 때문에 리스트에 넣고 sorted()를 사용해서 정렬했습니다. def solution(a, b): answer = 0 temp = [a, b] x = sorted(temp) a = x[0] b = x[1] for i in range(a, b+1): answer += i return answer
2019.12.03 -
같은 숫자는 싫어
프로그래머스 같은 숫자는 싫어 문제 풀이 제한사항에 원소 크기 조건이 0~9 여서 arr에 10을 추가시키고 for문을 돌려 현재 선택된 원소와 다음번 원소를 비교하고 같지 않으면 현재 원소의 인덱스를 temp리스트에 넣습니다. temp리스트에 들어간 인덱스를 사용해서 중복된 값을 제거하고 순서를 유지하며 answer를 구했습니다. def solution(arr): answer = [] arr.append(10) temp = [] for i in range(0, len(arr)-1): if arr[i] is not arr[i+1]: temp.append(i) for t in temp: answer.append(arr[t]) return answer
2019.12.03