전체 글 보기 148

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT 다트 게임(파이썬)

나의 답 : def solution(dartResult): s=[] score=[] s+=dartResult[0] answer = 0 for i in dartResult[1:]: if i=='0' and s[-1]=='1': s[-1] = '10' continue if i.isdigit(): if s[-1].isalpha(): s.append('-') s.append(i) elif i=='S' or i=='D' or i=='T': s.append(i) elif i=='*' or i=='#': s.append(i) print(s) for i in range(len(s)): print(score) if s[i].isdigit(): score.append(int(s[i])) elif s[i] == 'S': s..

[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 실패율

나의 답 : import operator def solution(N, stages): answer = [] result={} stages.sort() for i in range(1,N+1): if i in stages: result[i] = stages.count(i)/len(stages) while i in stages: stages.remove(i) else: result[i] = 0 result = sorted(result.items() ,reverse=True, key=operator.itemgetter(1)) print(result) for i in result: answer.append(i[0]) return answer 다른 사람의 답 : def solution(N, stages): resu..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT 비밀지도

나의 답 : def solution(n, arr1, arr2): answer = [] s='' for i in range(n): arr1[i]=format(arr1[i],'b') arr2[i]=format(arr2[i],'b') arr1[i]='0'*(n-len(arr1[i]))+arr1[i] arr2[i]='0'*(n-len(arr2[i]))+arr2[i] for j in range(n): if int(arr1[i][j]) or int(arr2[i][j]): s+='#' else: s+=' ' answer.append(s) s='' return answer 다른 사람의 답 : def solution(n, arr1, arr2): answer = [] for i,j in zip(arr1, arr2): a ..

[프로그래머스] 행렬의 덧셈, x만큼 간격이 있는 n개의 숫자

나의 답 : def solution(arr1, arr2): l=[] answer = [] for i in range(len(arr1)): for j in range(len(arr1[0])): l.append(arr1[i][j]+arr2[i][j]) answer.append(l) l=[] return answer 다른 사람의 답 : def sumMatrix(A,B): answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)] return answer 나의 답 : def solution(x, n): answer = [] a=x for i in range(n): answer.append(a) a+=x return answer 다른 사람의 답은 음수일 때를 고..

[프로그래머스] 최대공약수와 최소공배수, 콜라츠 추측, 핸드폰 번호 가리기

나의 답(유클리드 호제법) : def solution(n, m): answer = [] r=0 nn=0 nm=0 if n 0: t = c % d c, d = d, t answer = [c, int(a*b/c)] return answer 나의 답 : def solution(num): count = 0 if num==1: return 0 while True: count += 1 if count>500: return -1 if num%2==0: num/=2 else: num = (num*3)+1 if num == 1: return count 나의 답 : def solution(phone_number): a=phone_number[-4:] b=len(phone_number)-4 return ("*"*b)+a

[프로그래머스] 2020카카오 인턴십-키패드 누르기

나의 답 : def solution(numbers, hand): result=[] l=10 r=12 dl=0 dr=0 for i in numbers: if i == 0 : i = 11 if i in [1,4,7]: result.append('L') l=i elif i in [3,6,9]: result.append('R') r=i else: if abs(i-l) in [0]: dl=0 if abs(i-l) in [1,3]: dl=1 if abs(i-l) in [2,4,6]: dl=2 if abs(i-l) in [5,7,9]: dl=3 if abs(i-l) in [8,10]: dl=4 if abs(i-r) in [0]: dr=0 if abs(i-r) in [1,3]: dr=1 if abs(i-r) in [2..

[프로그래머스] 제일 작은 수 제거하기, 정수 제곱근 판별

나의 답 : def solution(arr): if len(arr)==1: return [-1] else: arr.remove(min(arr)) return arr 다른 사람의 답 : def rm_small(mylist): if len(mylist)>1: return [i for i in mylist if i > min(mylist)] else: return [-1] 나의 답 : import math def solution(n): l=math.sqrt(n) if l%2==0 or l%2==1: answer=math.pow(l+1,2) else: answer=-1 return answer 다른 사람의 답 : 1로 나눠서 판별함. def nextSqure(n): sqrt = n ** (1/2) if sqrt..