본문 바로가기

분류 전체보기1534

[백준] 1551 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import sys def solution(A): tmp=[] for i in range(len(A)-1): tmp.append(A[i+1]-A[i]) A=tmp return A n,t = map(int, sys.stdin.readline().split()) A=list(map(int, sys.stdin.readline().split(","))) for _ in range(t): A=solution(A) for i in range(len(A)): if i!=len(A)-1:print(A[i],end=',') else: print(A[i]) cs solution 에 해당하는 우선 i+1항에서 i항을 뺀 것이 새로운 수열이고 그리고 다른 문제들.. 2021. 1. 6.
[백준] 1434 1 2 3 4 5 import sys n,m = map(int, sys.stdin.readline().split()) A=list(map(int,sys.stdin.readline().split())) B=list(map(int,sys.stdin.readline().split())) print(sum(A)-sum(B)) cs 문제가 길긴 한데 손으로 풀어보시면서 하면 간단하게 풀립니다. 브론즈2 난이도가 조금 아깝습니다. 2021. 1. 6.
[백준] 1392 1 2 3 4 5 6 7 8 9 10 11 import sys n,q = map(int,sys.stdin.readline().split()) tmp=[0] cnt=0 for i in range(n): cnt+= int(sys.stdin.readline()) tmp.append(cnt) for i in range(q): test=int(sys.stdin.readline()) for _ in range(len(tmp)): if tmp[_] 2021. 1. 6.
[백준] 1350 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import sys n=int(sys.stdin.readline()) if n>1: tmp=list(map(int, sys.stdin.readline().split())) cluster=int(sys.stdin.readline()) cnt=0 for i in range(n): if tmp[i]!=0: if tmp[i]%cluster!=0: cnt+=(tmp[i]//cluster) +1 else: cnt+= tmp[i]//cluster print(cnt*cluster) else: tmp=int(sys.stdin.readline()) cluster=int(sys.stdin.readline()) if tmp%cluster==0: pri.. 2021. 1. 6.
[백준] 1264 1 2 3 4 5 6 7 8 moum='aeiou' while True: s = input().lower() if s=='#': exit() cnt=0 for i in s: if i in moum : cnt+=1 print(cnt) cs 문자열 중에 대문자가 있으면 인식을 못하므로 python 내장 함수 lower()을 이용해서 문자열 전체를 소문자화 시킵니다. 2021. 1. 6.
[백준] 1233 1 2 3 4 5 6 7 8 9 10 import sys s1,s2,s3=map(int,sys.stdin.readline().split()) tmp=[0]*81 for i in range(1,s1+1): for j in range(1, s2 + 1): for k in range(1, s3 + 1): tmp[i+j+k]+=1 for i in range(1,81): if tmp[i]==max(tmp): print(i); break cs 3중 for 문 써도 시간은 무난한데 메모리가 좀.. 2021. 1. 5.
[백준] 1225 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import sys a,b = sys.stdin.readline().split() tmpA=[] tmpB=[] tmp=0 for i in range(len(a)): tmpA.append( int (a[i])) for i in range(len(b)): tmpB.append( int (b[i])) for i in range(len(tmpA)): for j in range(len(tmpB)): tmp+= tmpA[i]*tmpB[j] print(tmp) cs 우선 pypy3로 풀었구요 최대 경우의수가 9999*9999 이므로 약 1억이거든요 시간이나 메모리 관리에 신경써야 할 문제 입니다. 2021. 1. 5.
[백준] 20053 1 2 3 4 5 import sys for _ in range(int(sys.stdin.readline())): dummy=sys.stdin.readline() tmp=list(map(int,sys.stdin.readline().split())) print(min(tmp),max(tmp)) cs python 내장함수 min, max를 이용해서 쉽게 풀었으나 정수의 개수가 백만 개에서 천만 개로 개수가 늘어난다면 조금 다른방법을 생각봐야지 않을까.. 싶습니다. 2021. 1. 5.
[백준] 19572 1 2 3 4 5 6 7 8 import sys d1,d2,d3=map(int,sys.stdin.readline().split()) if (d1+d2-d3)/2 2021. 1. 5.
[백준] 18247 1 2 3 4 5 import sys for _ in range(int(sys.stdin.readline())): n, m = map(int, sys.stdin.readline().split()) if n 2021. 1. 5.
[백준] 17945 1 2 3 4 5 6 import sys import math a,b=map(int, sys.stdin.readline().split()) if -a+int (math.sqrt(a**2-b))== -a-int (math.sqrt(a**2-b)): print(-a+int (math.sqrt(a**2-b))) else: print (-a-int (math.sqrt(a**2-b)),-a+int (math.sqrt(a**2-b))) cs 문제 설명은 길지만 근의공식을 구현하는 방식입니다. 2021. 1. 5.
[백준] 17618 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import sys def singi(n): tmp=n cnt=0 while tmp!=0: cnt+=tmp%10 tmp=tmp//10 if n%cnt==0 : return 1 else : return 0 n=int(sys.stdin.readline()) ans=0 for i in range(1,n+1): if singi(i)==1: ans+=1 print (ans) cs 일단 이 문제도 저처럼 하시면 python3 로는 시간초과뜹니다. 구현 방식이 얼추 비슷한것같은데 고민이 좀 더 필요해보이네요 2021. 1. 5.