본문 바로가기

코딩테스트/Python

(225)
[프로그래머스] 소수 찾기 내 코드 def solution(numbers): import itertools answer = 0 a = [] l = [i for i in str(numbers)] for i in range(1,len(l)+1): b = list(itertools.permutations(l,i)) a += [int("".join(i)) for i in b] a = set(a) for i in a: if i
[프로그래머스] 가장 큰 수 내 코드 def solution(numbers): numbers = list(map(str,numbers)) return str(int("".join(sorted(numbers,key = lambda x:x*3,reverse=True)))) ㅎㅎ 진짜 어렵다.. 이건 인터넷봄.. 저번에 친구랑 같이 풀다가 못풀어서 인터넷 봤었는데.. 그때 어떻게 푸는지만 대충보고 안풀었다ㅠ 포스팅할려고 다시품 ㅎㅎ 이건 진짜 ㅠ 창의력보는 문제인거같음 ㅠ 문자열로 바꿔준뒤 정렬을 하여 푸는 문제이다. 바로 정렬을 하면 풀리지 않고 약간의 변형이 필요하다. 먼저 문자열로 바꿔준다. 이때 바로 정렬을 하면 풀리지 않는다. 첫번째 테스트는 통과하지만 두번째 테스트는 통과하지 않는다. 3,30,34를 변형하여 정렬해줘야한다. ..
[프로그래머스] 카펫 내 코드 def solution(brown, yellow): answer = [] s = brown+yellow l = [] for i in range(3,s+1): if s%i==0: if s//i < i: break l.append([s//i,i]) for i in l: if (i[0]-2)*(i[1]-2) == yellow: return i return answer ㅠ 이건 코딩 능력보다 창의력 능력같다 ㅠ.ㅠ 풀긴 풀었는데 뭔가 뺑뺑 돌아가는 느낌?? 아이디어만 있으면 코딩은 어렵지 않음,, 갈색과 노란색의 합을 구해 s라고 한다. 즉, 전체 타일의 수가 s이다. s를 만들 수 있는 가로, 세로를 구해줄것이다. a*b=s가 될때의 a,b를 구하면된다! for 문을 3부터 끝까지 돌려서 s가 i로 ..
[프로그래머스] 모의고사 내 코드 def solution(answers): answer = [] a = [1,2,3,4,5] b = [2,1,2,3,2,4,2,5] c = [3,3,1,1,2,2,4,4,5,5] sol = [0,0,0] for i in range(len(answers)): if a[i%len(a)] == answers[i]: sol[0]+=1 if b[i%len(b)] == answers[i]: sol[1]+=1 if c[i%len(c)] == answers[i]: sol[2]+=1 for i in range(3): if max(sol)==sol[i]: answer.append(i+1) return answer 정답 갯수를 sol 리스트에 더해준 후 max를 구한다. 다른사람 코드 def solution(answ..
[프로그래머스] 위클리 챌린지 2주차 상호평가 작성중 .,,, 휴 위클린 챌린지 .. 오랜만에 본다? ㅎㅎ.. 저번에 1주차 하고 오랜만에 봤더니 4주차까지 나와있더라 ㅋ.. 2주차꺼를 풀어봤다.. 내 코드 def solution(scores): answer = "" for i in range(len(scores)): a = [k[i] for k in scores] s = sum(a) l = len(a) if scores[i][i] == min(a) or scores[i][i] == max(a): if a.count(scores[i][i]) == 1: s-=scores[i][i] l-=1 if s/l >= 90: answer+="A" elif s/l >= 80: answer+="B" elif s/l >= 70: answer+="C" elif s/l >= 5..
[프로그래머스] H-Index 작성중 정렬문제! 카테코리가 정렬이 아니였으면 정렬로 안풀었을듯.. ㅎ 정렬로 푸니까 빠르긴 한거같다!! 근데 문제가,, 이해하기 어려웠음 ㅠㅠ 내 코드 def solution(citations): answer = [] citations.sort() index=0 for i in range(len(citations)+1): index=0 for j in citations: if i= i: answer.append(i) return max(answer) 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값을 구해야한다. 여기서 정렬을 사용하지 않았으면 h번 이상 인용된 논문을 cnt를 사용해서 구했을텐데.,,. 정렬을 사용해서 index를 구하여서 풀었다. 아직..
[프로그래머스] 실패율 움.,,, 블로그 며칠만에 쓰는거지.. 코테 넘 오랜만에 하는거같아서 집중력 제로임.. 휴 .. 내 코드 def solution(N, stages): answer = [] for i in range(1,N+1): cnt1=0 cnt2=0 for j in stages: if j==i: cnt1+=1 if j>=i: cnt2+=1 if cnt1==0: answer.append([0,i]) else: answer.append([cnt1/cnt2,i]) answer = sorted(answer,key=lambda x:(-x[0],x[1])) return [i[1] for i in answer] 음 그냥 무식하게 풀었다..! 같은 숫자를 세고 큰 숫자를 센 다음 두개를 나눈다. 이때 앞 숫자가 0이면 answer..
[코드업] 파이썬 기초 100제 91~100 91. a,b,c = input().split() d = 1 while True: if d%int(a)==0 and d%int(b)==0 and d%int(c)==0: print(d) break d+=1 92. n = int(input()) a = input().split() arr = [0 for i in range(23)] for i in a: arr[int(i)-1]+=1 for i in arr: print(i, end=" ") 93. n = int(input()) a = input().split() a.reverse() for i in a: print(i,end=" ") 94. n = int(input()) a = input().split() a = list(map(lambda x:int(x),a..